﻿2026-06-15T09:27:04.8981556Z ##[group]Run ./traceable-reqs check --json
2026-06-15T09:27:04.8981944Z [36;1m./traceable-reqs check --json[0m
2026-06-15T09:27:04.8994874Z shell: /usr/bin/bash -e {0}
2026-06-15T09:27:04.8995147Z ##[endgroup]
2026-06-15T09:27:04.9439459Z {
2026-06-15T09:27:04.9440045Z   "schemaVersion": 1,
2026-06-15T09:27:04.9440537Z   "summary": {
2026-06-15T09:27:04.9441143Z     "requirementCount": 208,
2026-06-15T09:27:04.9441599Z     "completeCount": 208,
2026-06-15T09:27:04.9442035Z     "incompleteCount": 0,
2026-06-15T09:27:04.9442465Z     "findingCount": 0
2026-06-15T09:27:04.9442865Z   },
2026-06-15T09:27:04.9443227Z   "requirements": [
2026-06-15T09:27:04.9443613Z     {
2026-06-15T09:27:04.9444453Z       "id": "REQ-API-1",
2026-06-15T09:27:04.9445045Z       "title": "api prefix and adapter_name on every machinery invocation",
2026-06-15T09:27:04.9445699Z       "requiredStages": [
2026-06-15T09:27:04.9446113Z         "impl",
2026-06-15T09:27:04.9446476Z         "unit",
2026-06-15T09:27:04.9446838Z         "int"
2026-06-15T09:27:04.9447247Z       ],
2026-06-15T09:27:04.9447598Z       "stages": {
2026-06-15T09:27:04.9447966Z         "doc": {
2026-06-15T09:27:04.9448352Z           "complete": false,
2026-06-15T09:27:04.9448785Z           "evidence": []
2026-06-15T09:27:04.9449258Z         },
2026-06-15T09:27:04.9449633Z         "impl": {
2026-06-15T09:27:04.9450019Z           "complete": true,
2026-06-15T09:27:04.9450434Z           "evidence": [
2026-06-15T09:27:04.9450830Z             {
2026-06-15T09:27:04.9451245Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T09:27:04.9451775Z               "line": 15
2026-06-15T09:27:04.9452118Z             }
2026-06-15T09:27:04.9452421Z           ]
2026-06-15T09:27:04.9452705Z         },
2026-06-15T09:27:04.9452991Z         "int": {
2026-06-15T09:27:04.9453306Z           "complete": true,
2026-06-15T09:27:04.9453655Z           "evidence": [
2026-06-15T09:27:04.9453974Z             {
2026-06-15T09:27:04.9454318Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T09:27:04.9454760Z               "line": 13
2026-06-15T09:27:04.9455074Z             }
2026-06-15T09:27:04.9455363Z           ]
2026-06-15T09:27:04.9455644Z         },
2026-06-15T09:27:04.9455935Z         "unit": {
2026-06-15T09:27:04.9456254Z           "complete": true,
2026-06-15T09:27:04.9456607Z           "evidence": [
2026-06-15T09:27:04.9456927Z             {
2026-06-15T09:27:04.9457279Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T09:27:04.9457697Z               "line": 480
2026-06-15T09:27:04.9458028Z             },
2026-06-15T09:27:04.9458325Z             {
2026-06-15T09:27:04.9458658Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T09:27:04.9459141Z               "line": 518
2026-06-15T09:27:04.9459465Z             },
2026-06-15T09:27:04.9459756Z             {
2026-06-15T09:27:04.9460085Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T09:27:04.9460480Z               "line": 586
2026-06-15T09:27:04.9460805Z             }
2026-06-15T09:27:04.9461108Z           ]
2026-06-15T09:27:04.9461396Z         }
2026-06-15T09:27:04.9461672Z       }
2026-06-15T09:27:04.9461968Z     },
2026-06-15T09:27:04.9462248Z     {
2026-06-15T09:27:04.9462549Z       "id": "REQ-API-2",
2026-06-15T09:27:04.9463084Z       "title": "The api subcommand surface (bind/listen/poll/state/worker/boundary/...)",
2026-06-15T09:27:04.9463657Z       "requiredStages": [
2026-06-15T09:27:04.9463990Z         "impl",
2026-06-15T09:27:04.9464300Z         "unit",
2026-06-15T09:27:04.9464596Z         "int"
2026-06-15T09:27:04.9464888Z       ],
2026-06-15T09:27:04.9465173Z       "stages": {
2026-06-15T09:27:04.9465493Z         "doc": {
2026-06-15T09:27:04.9465805Z           "complete": false,
2026-06-15T09:27:04.9466156Z           "evidence": []
2026-06-15T09:27:04.9466472Z         },
2026-06-15T09:27:04.9466762Z         "impl": {
2026-06-15T09:27:04.9467072Z           "complete": true,
2026-06-15T09:27:04.9467426Z           "evidence": [
2026-06-15T09:27:04.9467740Z             {
2026-06-15T09:27:04.9468353Z               "path": "crates/spt-store/src/history.rs",
2026-06-15T09:27:04.9468781Z               "line": 17
2026-06-15T09:27:04.9469171Z             },
2026-06-15T09:27:04.9469462Z             {
2026-06-15T09:27:04.9469810Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T09:27:04.9470229Z               "line": 20
2026-06-15T09:27:04.9470554Z             },
2026-06-15T09:27:04.9470835Z             {
2026-06-15T09:27:04.9471191Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T09:27:04.9471627Z               "line": 142
2026-06-15T09:27:04.9472027Z             },
2026-06-15T09:27:04.9472279Z             {
2026-06-15T09:27:04.9472957Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:27:04.9473394Z               "line": 24
2026-06-15T09:27:04.9473730Z             },
2026-06-15T09:27:04.9474020Z             {
2026-06-15T09:27:04.9474378Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:27:04.9474794Z               "line": 41
2026-06-15T09:27:04.9475113Z             },
2026-06-15T09:27:04.9475390Z             {
2026-06-15T09:27:04.9475738Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:27:04.9476148Z               "line": 209
2026-06-15T09:27:04.9476474Z             },
2026-06-15T09:27:04.9476760Z             {
2026-06-15T09:27:04.9477107Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:27:04.9477531Z               "line": 251
2026-06-15T09:27:04.9477841Z             },
2026-06-15T09:27:04.9478127Z             {
2026-06-15T09:27:04.9478471Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:27:04.9478904Z               "line": 330
2026-06-15T09:27:04.9479312Z             },
2026-06-15T09:27:04.9479589Z             {
2026-06-15T09:27:04.9479937Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T09:27:04.9480356Z               "line": 17
2026-06-15T09:27:04.9480576Z             },
2026-06-15T09:27:04.9480785Z             {
2026-06-15T09:27:04.9481018Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T09:27:04.9481299Z               "line": 30
2026-06-15T09:27:04.9481525Z             },
2026-06-15T09:27:04.9481723Z             {
2026-06-15T09:27:04.9481957Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T09:27:04.9482243Z               "line": 63
2026-06-15T09:27:04.9482468Z             },
2026-06-15T09:27:04.9482658Z             {
2026-06-15T09:27:04.9482892Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T09:27:04.9483164Z               "line": 77
2026-06-15T09:27:04.9483393Z             }
2026-06-15T09:27:04.9483597Z           ]
2026-06-15T09:27:04.9483789Z         },
2026-06-15T09:27:04.9484001Z         "int": {
2026-06-15T09:27:04.9484223Z           "complete": true,
2026-06-15T09:27:04.9484472Z           "evidence": [
2026-06-15T09:27:04.9484686Z             {
2026-06-15T09:27:04.9484928Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T09:27:04.9485219Z               "line": 14
2026-06-15T09:27:04.9485444Z             },
2026-06-15T09:27:04.9485655Z             {
2026-06-15T09:27:04.9485901Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T09:27:04.9486197Z               "line": 187
2026-06-15T09:27:04.9486417Z             }
2026-06-15T09:27:04.9486623Z           ]
2026-06-15T09:27:04.9486816Z         },
2026-06-15T09:27:04.9487016Z         "unit": {
2026-06-15T09:27:04.9487243Z           "complete": true,
2026-06-15T09:27:04.9487491Z           "evidence": [
2026-06-15T09:27:04.9487711Z             {
2026-06-15T09:27:04.9487945Z               "path": "crates/spt-store/src/history.rs",
2026-06-15T09:27:04.9488231Z               "line": 82
2026-06-15T09:27:04.9488464Z             },
2026-06-15T09:27:04.9488668Z             {
2026-06-15T09:27:04.9488922Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T09:27:04.9489326Z               "line": 264
2026-06-15T09:27:04.9489555Z             },
2026-06-15T09:27:04.9489761Z             {
2026-06-15T09:27:04.9490154Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:27:04.9490449Z               "line": 585
2026-06-15T09:27:04.9490668Z             },
2026-06-15T09:27:04.9490873Z             {
2026-06-15T09:27:04.9491127Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:27:04.9491437Z               "line": 596
2026-06-15T09:27:04.9491660Z             },
2026-06-15T09:27:04.9491864Z             {
2026-06-15T09:27:04.9492118Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:27:04.9492403Z               "line": 749
2026-06-15T09:27:04.9492631Z             },
2026-06-15T09:27:04.9492842Z             {
2026-06-15T09:27:04.9493218Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:27:04.9493504Z               "line": 795
2026-06-15T09:27:04.9493734Z             },
2026-06-15T09:27:04.9493939Z             {
2026-06-15T09:27:04.9494200Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T09:27:04.9494495Z               "line": 143
2026-06-15T09:27:04.9494732Z             },
2026-06-15T09:27:04.9494936Z             {
2026-06-15T09:27:04.9495183Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T09:27:04.9495469Z               "line": 187
2026-06-15T09:27:04.9495694Z             }
2026-06-15T09:27:04.9495896Z           ]
2026-06-15T09:27:04.9496095Z         }
2026-06-15T09:27:04.9496286Z       }
2026-06-15T09:27:04.9496486Z     },
2026-06-15T09:27:04.9496690Z     {
2026-06-15T09:27:04.9496901Z       "id": "REQ-API-3",
2026-06-15T09:27:04.9497202Z       "title": "commune/signoff are file-drops, not commands",
2026-06-15T09:27:04.9497533Z       "requiredStages": [
2026-06-15T09:27:04.9497789Z         "impl",
2026-06-15T09:27:04.9497994Z         "unit",
2026-06-15T09:27:04.9498223Z         "int"
2026-06-15T09:27:04.9498552Z       ],
2026-06-15T09:27:04.9498862Z       "stages": {
2026-06-15T09:27:04.9499272Z         "doc": {
2026-06-15T09:27:04.9499606Z           "complete": false,
2026-06-15T09:27:04.9499990Z           "evidence": []
2026-06-15T09:27:04.9500346Z         },
2026-06-15T09:27:04.9500641Z         "impl": {
2026-06-15T09:27:04.9500970Z           "complete": true,
2026-06-15T09:27:04.9501319Z           "evidence": [
2026-06-15T09:27:04.9501639Z             {
2026-06-15T09:27:04.9502007Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T09:27:04.9502439Z               "line": 27
2026-06-15T09:27:04.9502772Z             },
2026-06-15T09:27:04.9503068Z             {
2026-06-15T09:27:04.9503439Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:27:04.9503860Z               "line": 442
2026-06-15T09:27:04.9504198Z             }
2026-06-15T09:27:04.9504794Z           ]
2026-06-15T09:27:04.9505250Z         },
2026-06-15T09:27:04.9505678Z         "int": {
2026-06-15T09:27:04.9506164Z           "complete": true,
2026-06-15T09:27:04.9506750Z           "evidence": [
2026-06-15T09:27:04.9507203Z             {
2026-06-15T09:27:04.9507753Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T09:27:04.9508411Z               "line": 261
2026-06-15T09:27:04.9509060Z             }
2026-06-15T09:27:04.9537715Z           ]
2026-06-15T09:27:04.9538122Z         },
2026-06-15T09:27:04.9538344Z         "unit": {
2026-06-15T09:27:04.9538583Z           "complete": true,
2026-06-15T09:27:04.9538828Z           "evidence": [
2026-06-15T09:27:04.9539109Z             {
2026-06-15T09:27:04.9539361Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T09:27:04.9539664Z               "line": 280
2026-06-15T09:27:04.9539886Z             },
2026-06-15T09:27:04.9540077Z             {
2026-06-15T09:27:04.9540339Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:27:04.9540669Z               "line": 824
2026-06-15T09:27:04.9540897Z             }
2026-06-15T09:27:04.9541093Z           ]
2026-06-15T09:27:04.9541278Z         }
2026-06-15T09:27:04.9541474Z       }
2026-06-15T09:27:04.9541666Z     },
2026-06-15T09:27:04.9541870Z     {
2026-06-15T09:27:04.9542085Z       "id": "REQ-ARCH-1",
2026-06-15T09:27:04.9542567Z       "title": "Many small acyclically-layered crates",
2026-06-15T09:27:04.9542877Z       "requiredStages": [
2026-06-15T09:27:04.9543111Z         "impl"
2026-06-15T09:27:04.9543321Z       ],
2026-06-15T09:27:04.9543531Z       "stages": {
2026-06-15T09:27:04.9543750Z         "doc": {
2026-06-15T09:27:04.9543979Z           "complete": false,
2026-06-15T09:27:04.9544224Z           "evidence": []
2026-06-15T09:27:04.9544456Z         },
2026-06-15T09:27:04.9544665Z         "impl": {
2026-06-15T09:27:04.9544896Z           "complete": true,
2026-06-15T09:27:04.9545146Z           "evidence": [
2026-06-15T09:27:04.9545366Z             {
2026-06-15T09:27:04.9545742Z               "path": "crates/spt-msg/src/lib.rs",
2026-06-15T09:27:04.9546033Z               "line": 18
2026-06-15T09:27:04.9546262Z             },
2026-06-15T09:27:04.9546477Z             {
2026-06-15T09:27:04.9546734Z               "path": "crates/spt-proto/src/lib.rs",
2026-06-15T09:27:04.9547015Z               "line": 12
2026-06-15T09:27:04.9547258Z             },
2026-06-15T09:27:04.9547462Z             {
2026-06-15T09:27:04.9547703Z               "path": "crates/spt-store/src/lib.rs",
2026-06-15T09:27:04.9547999Z               "line": 12
2026-06-15T09:27:04.9548228Z             }
2026-06-15T09:27:04.9548434Z           ]
2026-06-15T09:27:04.9548643Z         },
2026-06-15T09:27:04.9548848Z         "int": {
2026-06-15T09:27:04.9549148Z           "complete": false,
2026-06-15T09:27:04.9549393Z           "evidence": []
2026-06-15T09:27:04.9549616Z         },
2026-06-15T09:27:04.9549815Z         "unit": {
2026-06-15T09:27:04.9550027Z           "complete": false,
2026-06-15T09:27:04.9550277Z           "evidence": []
2026-06-15T09:27:04.9550499Z         }
2026-06-15T09:27:04.9550690Z       }
2026-06-15T09:27:04.9550885Z     },
2026-06-15T09:27:04.9551077Z     {
2026-06-15T09:27:04.9551292Z       "id": "REQ-ARCH-2",
2026-06-15T09:27:04.9551616Z       "title": "Public SDK surface is spt-proto, spt-runtime, spt-msg",
2026-06-15T09:27:04.9551964Z       "requiredStages": [
2026-06-15T09:27:04.9552198Z         "impl"
2026-06-15T09:27:04.9552401Z       ],
2026-06-15T09:27:04.9552594Z       "stages": {
2026-06-15T09:27:04.9552810Z         "doc": {
2026-06-15T09:27:04.9553018Z           "complete": false,
2026-06-15T09:27:04.9553267Z           "evidence": []
2026-06-15T09:27:04.9553490Z         },
2026-06-15T09:27:04.9553685Z         "impl": {
2026-06-15T09:27:04.9553900Z           "complete": true,
2026-06-15T09:27:04.9554140Z           "evidence": [
2026-06-15T09:27:04.9554348Z             {
2026-06-15T09:27:04.9554602Z               "path": "crates/spt-runtime/src/lib.rs",
2026-06-15T09:27:04.9554887Z               "line": 18
2026-06-15T09:27:04.9555103Z             }
2026-06-15T09:27:04.9555307Z           ]
2026-06-15T09:27:04.9555498Z         },
2026-06-15T09:27:04.9555697Z         "int": {
2026-06-15T09:27:04.9555916Z           "complete": false,
2026-06-15T09:27:04.9556160Z           "evidence": []
2026-06-15T09:27:04.9556385Z         },
2026-06-15T09:27:04.9556579Z         "unit": {
2026-06-15T09:27:04.9556799Z           "complete": false,
2026-06-15T09:27:04.9557066Z           "evidence": []
2026-06-15T09:27:04.9557295Z         }
2026-06-15T09:27:04.9557485Z       }
2026-06-15T09:27:04.9557672Z     },
2026-06-15T09:27:04.9557865Z     {
2026-06-15T09:27:04.9558074Z       "id": "REQ-ARCH-3",
2026-06-15T09:27:04.9558440Z       "title": "Wire-protocol version independent of crate semver, N-1 compat window",
2026-06-15T09:27:04.9558817Z       "requiredStages": [
2026-06-15T09:27:04.9565901Z         "impl",
2026-06-15T09:27:04.9566237Z         "unit"
2026-06-15T09:27:04.9566462Z       ],
2026-06-15T09:27:04.9566940Z       "stages": {
2026-06-15T09:27:04.9567293Z         "doc": {
2026-06-15T09:27:04.9567584Z           "complete": false,
2026-06-15T09:27:04.9567894Z           "evidence": []
2026-06-15T09:27:04.9568174Z         },
2026-06-15T09:27:04.9568416Z         "impl": {
2026-06-15T09:27:04.9568695Z           "complete": true,
2026-06-15T09:27:04.9569507Z           "evidence": [
2026-06-15T09:27:04.9569792Z             {
2026-06-15T09:27:04.9570126Z               "path": "crates/spt-proto/src/version.rs",
2026-06-15T09:27:04.9570493Z               "line": 34
2026-06-15T09:27:04.9570766Z             },
2026-06-15T09:27:04.9571012Z             {
2026-06-15T09:27:04.9571359Z               "path": "crates/spt-proto/src/version.rs",
2026-06-15T09:27:04.9571749Z               "line": 41
2026-06-15T09:27:04.9571996Z             }
2026-06-15T09:27:04.9572220Z           ]
2026-06-15T09:27:04.9572426Z         },
2026-06-15T09:27:04.9572649Z         "int": {
2026-06-15T09:27:04.9572902Z           "complete": false,
2026-06-15T09:27:04.9573289Z           "evidence": []
2026-06-15T09:27:04.9573536Z         },
2026-06-15T09:27:04.9573752Z         "unit": {
2026-06-15T09:27:04.9573997Z           "complete": true,
2026-06-15T09:27:04.9574267Z           "evidence": [
2026-06-15T09:27:04.9574510Z             {
2026-06-15T09:27:04.9574796Z               "path": "crates/spt-proto/src/version.rs",
2026-06-15T09:27:04.9575121Z               "line": 51
2026-06-15T09:27:04.9575373Z             },
2026-06-15T09:27:04.9575603Z             {
2026-06-15T09:27:04.9575875Z               "path": "crates/spt-proto/src/version.rs",
2026-06-15T09:27:04.9576200Z               "line": 71
2026-06-15T09:27:04.9576446Z             },
2026-06-15T09:27:04.9576684Z             {
2026-06-15T09:27:04.9576957Z               "path": "crates/spt-proto/src/version.rs",
2026-06-15T09:27:04.9577270Z               "line": 83
2026-06-15T09:27:04.9577505Z             }
2026-06-15T09:27:04.9577728Z           ]
2026-06-15T09:27:04.9577942Z         }
2026-06-15T09:27:04.9578173Z       }
2026-06-15T09:27:04.9578381Z     },
2026-06-15T09:27:04.9578600Z     {
2026-06-15T09:27:04.9578835Z       "id": "REQ-ARCH-4",
2026-06-15T09:27:04.9579279Z       "title": "Copy-verbatim the commodity layer from the sister project",
2026-06-15T09:27:04.9579679Z       "requiredStages": [
2026-06-15T09:27:04.9579946Z         "impl",
2026-06-15T09:27:04.9580166Z         "unit"
2026-06-15T09:27:04.9580386Z       ],
2026-06-15T09:27:04.9580609Z       "stages": {
2026-06-15T09:27:04.9580843Z         "doc": {
2026-06-15T09:27:04.9581096Z           "complete": false,
2026-06-15T09:27:04.9581364Z           "evidence": []
2026-06-15T09:27:04.9581617Z         },
2026-06-15T09:27:04.9581839Z         "impl": {
2026-06-15T09:27:04.9582090Z           "complete": true,
2026-06-15T09:27:04.9582357Z           "evidence": [
2026-06-15T09:27:04.9582585Z             {
2026-06-15T09:27:04.9582837Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:27:04.9583109Z               "line": 157
2026-06-15T09:27:04.9583334Z             },
2026-06-15T09:27:04.9583543Z             {
2026-06-15T09:27:04.9583782Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:27:04.9584058Z               "line": 180
2026-06-15T09:27:04.9584269Z             },
2026-06-15T09:27:04.9584472Z             {
2026-06-15T09:27:04.9584713Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:27:04.9584995Z               "line": 200
2026-06-15T09:27:04.9585205Z             },
2026-06-15T09:27:04.9585399Z             {
2026-06-15T09:27:04.9585638Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:27:04.9585910Z               "line": 215
2026-06-15T09:27:04.9586130Z             },
2026-06-15T09:27:04.9586330Z             {
2026-06-15T09:27:04.9586568Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:27:04.9586841Z               "line": 265
2026-06-15T09:27:04.9587060Z             }
2026-06-15T09:27:04.9587254Z           ]
2026-06-15T09:27:04.9587459Z         },
2026-06-15T09:27:04.9587663Z         "int": {
2026-06-15T09:27:04.9587874Z           "complete": false,
2026-06-15T09:27:04.9588117Z           "evidence": []
2026-06-15T09:27:04.9588350Z         },
2026-06-15T09:27:04.9588541Z         "unit": {
2026-06-15T09:27:04.9588761Z           "complete": true,
2026-06-15T09:27:04.9589199Z           "evidence": [
2026-06-15T09:27:04.9589424Z             {
2026-06-15T09:27:04.9589670Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:27:04.9589934Z               "line": 326
2026-06-15T09:27:04.9590154Z             },
2026-06-15T09:27:04.9590345Z             {
2026-06-15T09:27:04.9590593Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:27:04.9590864Z               "line": 336
2026-06-15T09:27:04.9591079Z             },
2026-06-15T09:27:04.9591285Z             {
2026-06-15T09:27:04.9591522Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:27:04.9591799Z               "line": 347
2026-06-15T09:27:04.9592114Z             },
2026-06-15T09:27:04.9592314Z             {
2026-06-15T09:27:04.9592556Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:27:04.9592835Z               "line": 358
2026-06-15T09:27:04.9593054Z             },
2026-06-15T09:27:04.9593255Z             {
2026-06-15T09:27:04.9593509Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:27:04.9593784Z               "line": 370
2026-06-15T09:27:04.9593994Z             },
2026-06-15T09:27:04.9594190Z             {
2026-06-15T09:27:04.9594419Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:27:04.9594690Z               "line": 383
2026-06-15T09:27:04.9594904Z             },
2026-06-15T09:27:04.9595114Z             {
2026-06-15T09:27:04.9595339Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:27:04.9595621Z               "line": 394
2026-06-15T09:27:04.9595832Z             },
2026-06-15T09:27:04.9596031Z             {
2026-06-15T09:27:04.9596279Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:27:04.9596570Z               "line": 411
2026-06-15T09:27:04.9596799Z             },
2026-06-15T09:27:04.9597000Z             {
2026-06-15T09:27:04.9597252Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:27:04.9597529Z               "line": 539
2026-06-15T09:27:04.9597772Z             }
2026-06-15T09:27:04.9597971Z           ]
2026-06-15T09:27:04.9598161Z         }
2026-06-15T09:27:04.9598358Z       }
2026-06-15T09:27:04.9598557Z     },
2026-06-15T09:27:04.9598744Z     {
2026-06-15T09:27:04.9599030Z       "id": "REQ-CLI-1",
2026-06-15T09:27:04.9600315Z       "title": "spt endpoint noun namespace: absorbs fork/suspend/wake/shutdown/rename/stop/digest + access (ported 1:1: allow|revoke|open|list, decision 21) + description (ex-resources blurb; bare=show, set=author); merged endpoint list [--local|--subnet <name>] grouped by subnet with SELF pinned, --detail adding the ex-resources yellow-pages blurb projection; bare spt endpoint = the list (M8 decisions 1-2, 25)",
2026-06-15T09:27:04.9601521Z       "requiredStages": [
2026-06-15T09:27:04.9601749Z         "impl",
2026-06-15T09:27:04.9601964Z         "unit"
2026-06-15T09:27:04.9602165Z       ],
2026-06-15T09:27:04.9602368Z       "stages": {
2026-06-15T09:27:04.9602583Z         "doc": {
2026-06-15T09:27:04.9602804Z           "complete": false,
2026-06-15T09:27:04.9603059Z           "evidence": []
2026-06-15T09:27:04.9603290Z         },
2026-06-15T09:27:04.9603496Z         "impl": {
2026-06-15T09:27:04.9603720Z           "complete": true,
2026-06-15T09:27:04.9603967Z           "evidence": [
2026-06-15T09:27:04.9604187Z             {
2026-06-15T09:27:04.9604412Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:04.9604693Z               "line": 225
2026-06-15T09:27:04.9604911Z             },
2026-06-15T09:27:04.9605121Z             {
2026-06-15T09:27:04.9605347Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:04.9605630Z               "line": 984
2026-06-15T09:27:04.9605862Z             },
2026-06-15T09:27:04.9606073Z             {
2026-06-15T09:27:04.9606301Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:04.9606572Z               "line": 1512
2026-06-15T09:27:04.9606792Z             },
2026-06-15T09:27:04.9607002Z             {
2026-06-15T09:27:04.9607235Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:04.9607622Z               "line": 2723
2026-06-15T09:27:04.9607846Z             }
2026-06-15T09:27:04.9608041Z           ]
2026-06-15T09:27:04.9608238Z         },
2026-06-15T09:27:04.9608426Z         "int": {
2026-06-15T09:27:04.9608642Z           "complete": false,
2026-06-15T09:27:04.9608880Z           "evidence": []
2026-06-15T09:27:04.9609171Z         },
2026-06-15T09:27:04.9609365Z         "unit": {
2026-06-15T09:27:04.9609585Z           "complete": true,
2026-06-15T09:27:04.9609815Z           "evidence": [
2026-06-15T09:27:04.9610033Z             {
2026-06-15T09:27:04.9610262Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:04.9610637Z               "line": 6410
2026-06-15T09:27:04.9610866Z             }
2026-06-15T09:27:04.9611064Z           ]
2026-06-15T09:27:04.9611265Z         }
2026-06-15T09:27:04.9611461Z       }
2026-06-15T09:27:04.9611646Z     },
2026-06-15T09:27:04.9611846Z     {
2026-06-15T09:27:04.9612057Z       "id": "REQ-CLI-2",
2026-06-15T09:27:04.9612953Z       "title": "spt daemon noun: run|stop|status (hidden daemon verb becomes daemon run; agent-endpoint shutdown keeps its name under endpoint); daemon status renders the pump heartbeat (last-tick recency) so a half-dead daemon is never rendered implied-healthy (M8 decisions 5, 23)",
2026-06-15T09:27:04.9613803Z       "requiredStages": [
2026-06-15T09:27:04.9614037Z         "impl",
2026-06-15T09:27:04.9614250Z         "unit"
2026-06-15T09:27:04.9614461Z       ],
2026-06-15T09:27:04.9614672Z       "stages": {
2026-06-15T09:27:04.9614885Z         "doc": {
2026-06-15T09:27:04.9615100Z           "complete": false,
2026-06-15T09:27:04.9615334Z           "evidence": []
2026-06-15T09:27:04.9615559Z         },
2026-06-15T09:27:04.9615767Z         "impl": {
2026-06-15T09:27:04.9615987Z           "complete": true,
2026-06-15T09:27:04.9616219Z           "evidence": [
2026-06-15T09:27:04.9616431Z             {
2026-06-15T09:27:04.9616689Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:27:04.9616981Z               "line": 345
2026-06-15T09:27:04.9617196Z             },
2026-06-15T09:27:04.9617399Z             {
2026-06-15T09:27:04.9617652Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-15T09:27:04.9617938Z               "line": 78
2026-06-15T09:27:04.9618164Z             },
2026-06-15T09:27:04.9618358Z             {
2026-06-15T09:27:04.9618615Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T09:27:04.9618939Z               "line": 239
2026-06-15T09:27:04.9619235Z             },
2026-06-15T09:27:04.9632963Z             {
2026-06-15T09:27:04.9633263Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:04.9633573Z               "line": 419
2026-06-15T09:27:04.9633812Z             },
2026-06-15T09:27:04.9634007Z             {
2026-06-15T09:27:04.9634249Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:04.9634536Z               "line": 1067
2026-06-15T09:27:04.9634758Z             },
2026-06-15T09:27:04.9634966Z             {
2026-06-15T09:27:04.9635200Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:04.9635477Z               "line": 1707
2026-06-15T09:27:04.9635710Z             },
2026-06-15T09:27:04.9646032Z             {
2026-06-15T09:27:04.9646333Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:04.9646633Z               "line": 1786
2026-06-15T09:27:04.9646871Z             },
2026-06-15T09:27:04.9647076Z             {
2026-06-15T09:27:04.9647306Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:04.9647588Z               "line": 1847
2026-06-15T09:27:04.9647818Z             }
2026-06-15T09:27:04.9648022Z           ]
2026-06-15T09:27:04.9648222Z         },
2026-06-15T09:27:04.9648440Z         "int": {
2026-06-15T09:27:04.9648656Z           "complete": false,
2026-06-15T09:27:04.9648904Z           "evidence": []
2026-06-15T09:27:04.9649205Z         },
2026-06-15T09:27:04.9649404Z         "unit": {
2026-06-15T09:27:04.9649648Z           "complete": true,
2026-06-15T09:27:04.9650082Z           "evidence": [
2026-06-15T09:27:04.9650310Z             {
2026-06-15T09:27:04.9650573Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T09:27:04.9650868Z               "line": 309
2026-06-15T09:27:04.9651092Z             },
2026-06-15T09:27:04.9651300Z             {
2026-06-15T09:27:04.9651535Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:04.9651807Z               "line": 6548
2026-06-15T09:27:04.9652031Z             }
2026-06-15T09:27:04.9652236Z           ]
2026-06-15T09:27:04.9652428Z         }
2026-06-15T09:27:04.9652622Z       }
2026-06-15T09:27:04.9652822Z     },
2026-06-15T09:27:04.9652998Z     {
2026-06-15T09:27:04.9653315Z       "id": "REQ-CLI-3",
2026-06-15T09:27:04.9654225Z       "title": "Agent hot path stays flat across the M8 reorg: send/ring/ready/whoami/how-to unchanged; notify moves to subnet notify while notif stays top-level; breaking renames land clean with no deprecation shims (zero external CLI consumers pre-spt-claude-code) (M8 decisions 3-4, 9)",
2026-06-15T09:27:04.9655122Z       "requiredStages": [
2026-06-15T09:27:04.9655351Z         "impl",
2026-06-15T09:27:04.9655566Z         "unit"
2026-06-15T09:27:04.9655760Z       ],
2026-06-15T09:27:04.9655964Z       "stages": {
2026-06-15T09:27:04.9656172Z         "doc": {
2026-06-15T09:27:04.9656392Z           "complete": false,
2026-06-15T09:27:04.9656640Z           "evidence": []
2026-06-15T09:27:04.9656860Z         },
2026-06-15T09:27:04.9657064Z         "impl": {
2026-06-15T09:27:04.9657278Z           "complete": true,
2026-06-15T09:27:04.9657518Z           "evidence": [
2026-06-15T09:27:04.9657731Z             {
2026-06-15T09:27:04.9657965Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:04.9658242Z               "line": 978
2026-06-15T09:27:04.9658465Z             }
2026-06-15T09:27:04.9658676Z           ]
2026-06-15T09:27:04.9658868Z         },
2026-06-15T09:27:04.9659164Z         "int": {
2026-06-15T09:27:04.9659383Z           "complete": false,
2026-06-15T09:27:04.9659635Z           "evidence": []
2026-06-15T09:27:04.9659864Z         },
2026-06-15T09:27:04.9660061Z         "unit": {
2026-06-15T09:27:04.9660288Z           "complete": true,
2026-06-15T09:27:04.9660522Z           "evidence": [
2026-06-15T09:27:04.9660752Z             {
2026-06-15T09:27:04.9660971Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:04.9661250Z               "line": 6375
2026-06-15T09:27:04.9661480Z             }
2026-06-15T09:27:04.9661700Z           ]
2026-06-15T09:27:04.9661899Z         }
2026-06-15T09:27:04.9662090Z       }
2026-06-15T09:27:04.9662286Z     },
2026-06-15T09:27:04.9662477Z     {
2026-06-15T09:27:04.9662697Z       "id": "REQ-CONSENT-1",
2026-06-15T09:27:04.9663789Z       "title": "Consent grant store: capability x subject-agent x target-node rows, enforced at the target node, subnet-settable (replicates as security material near the trust store), revocable; gated-capability ids (remote-exec, instantiate-anywhere) reserved-but-refusing; v1 consumers are the shell spawn gates (CONTEXT Consent & security gates)",
2026-06-15T09:27:04.9664824Z       "requiredStages": [
2026-06-15T09:27:04.9665052Z         "impl",
2026-06-15T09:27:04.9665258Z         "unit"
2026-06-15T09:27:04.9665458Z       ],
2026-06-15T09:27:04.9665653Z       "stages": {
2026-06-15T09:27:04.9665864Z         "doc": {
2026-06-15T09:27:04.9666083Z           "complete": false,
2026-06-15T09:27:04.9666320Z           "evidence": []
2026-06-15T09:27:04.9666548Z         },
2026-06-15T09:27:04.9666742Z         "impl": {
2026-06-15T09:27:04.9666952Z           "complete": true,
2026-06-15T09:27:04.9667210Z           "evidence": [
2026-06-15T09:27:04.9667420Z             {
2026-06-15T09:27:04.9667671Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T09:27:04.9667953Z               "line": 27
2026-06-15T09:27:04.9668158Z             },
2026-06-15T09:27:04.9668345Z             {
2026-06-15T09:27:04.9668583Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T09:27:04.9668859Z               "line": 75
2026-06-15T09:27:04.9669255Z             },
2026-06-15T09:27:04.9669448Z             {
2026-06-15T09:27:04.9669700Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T09:27:04.9669987Z               "line": 98
2026-06-15T09:27:04.9670200Z             },
2026-06-15T09:27:04.9670396Z             {
2026-06-15T09:27:04.9670631Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T09:27:04.9670892Z               "line": 82
2026-06-15T09:27:04.9671106Z             },
2026-06-15T09:27:04.9671298Z             {
2026-06-15T09:27:04.9671536Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T09:27:04.9671830Z               "line": 109
2026-06-15T09:27:04.9672159Z             },
2026-06-15T09:27:04.9672365Z             {
2026-06-15T09:27:04.9672608Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T09:27:04.9672889Z               "line": 127
2026-06-15T09:27:04.9673122Z             },
2026-06-15T09:27:04.9673327Z             {
2026-06-15T09:27:04.9673576Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T09:27:04.9673853Z               "line": 142
2026-06-15T09:27:04.9674075Z             },
2026-06-15T09:27:04.9674278Z             {
2026-06-15T09:27:04.9674512Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:04.9674793Z               "line": 5962
2026-06-15T09:27:04.9675021Z             }
2026-06-15T09:27:04.9675212Z           ]
2026-06-15T09:27:04.9675409Z         },
2026-06-15T09:27:04.9675608Z         "int": {
2026-06-15T09:27:04.9675832Z           "complete": false,
2026-06-15T09:27:04.9676071Z           "evidence": []
2026-06-15T09:27:04.9676294Z         },
2026-06-15T09:27:04.9676504Z         "unit": {
2026-06-15T09:27:04.9676725Z           "complete": true,
2026-06-15T09:27:04.9676960Z           "evidence": [
2026-06-15T09:27:04.9677183Z             {
2026-06-15T09:27:04.9677431Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T09:27:04.9677718Z               "line": 334
2026-06-15T09:27:04.9677946Z             },
2026-06-15T09:27:04.9678132Z             {
2026-06-15T09:27:04.9678366Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T09:27:04.9678643Z               "line": 380
2026-06-15T09:27:04.9678871Z             },
2026-06-15T09:27:04.9679147Z             {
2026-06-15T09:27:04.9679390Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T09:27:04.9679679Z               "line": 391
2026-06-15T09:27:04.9679897Z             },
2026-06-15T09:27:04.9680097Z             {
2026-06-15T09:27:04.9680332Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T09:27:04.9680608Z               "line": 165
2026-06-15T09:27:04.9680837Z             },
2026-06-15T09:27:04.9681037Z             {
2026-06-15T09:27:04.9681280Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T09:27:04.9681553Z               "line": 184
2026-06-15T09:27:04.9681777Z             },
2026-06-15T09:27:04.9681981Z             {
2026-06-15T09:27:04.9682225Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T09:27:04.9682510Z               "line": 204
2026-06-15T09:27:04.9682738Z             },
2026-06-15T09:27:04.9682939Z             {
2026-06-15T09:27:04.9683163Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:04.9683436Z               "line": 6728
2026-06-15T09:27:04.9683672Z             }
2026-06-15T09:27:04.9683859Z           ]
2026-06-15T09:27:04.9684051Z         }
2026-06-15T09:27:04.9684240Z       }
2026-06-15T09:27:04.9684432Z     },
2026-06-15T09:27:04.9684616Z     {
2026-06-15T09:27:04.9684829Z       "id": "REQ-CONSENT-2",
2026-06-15T09:27:04.9685891Z       "title": "Interactive consent escalation: an ungated high-risk action routes a consent prompt to the user's most-recently-active session; allow-once / allow-always (writes a grant) / deny; pre-consent flags (can_shutdown, shell_wake_spawn_anywhere) author grants via manifest/settings (CONTEXT Consent & security gates)",
2026-06-15T09:27:04.9686913Z       "requiredStages": [
2026-06-15T09:27:04.9687252Z         "impl",
2026-06-15T09:27:04.9687469Z         "unit"
2026-06-15T09:27:04.9687678Z       ],
2026-06-15T09:27:04.9687872Z       "stages": {
2026-06-15T09:27:04.9688086Z         "doc": {
2026-06-15T09:27:04.9688306Z           "complete": false,
2026-06-15T09:27:04.9688559Z           "evidence": []
2026-06-15T09:27:04.9688777Z         },
2026-06-15T09:27:04.9689040Z         "impl": {
2026-06-15T09:27:04.9689260Z           "complete": true,
2026-06-15T09:27:04.9689513Z           "evidence": [
2026-06-15T09:27:04.9689736Z             {
2026-06-15T09:27:04.9689988Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T09:27:04.9690272Z               "line": 140
2026-06-15T09:27:04.9690610Z             },
2026-06-15T09:27:04.9690812Z             {
2026-06-15T09:27:04.9691058Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T09:27:04.9691349Z               "line": 165
2026-06-15T09:27:04.9691569Z             },
2026-06-15T09:27:04.9691775Z             {
2026-06-15T09:27:04.9692022Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T09:27:04.9692303Z               "line": 199
2026-06-15T09:27:04.9692522Z             },
2026-06-15T09:27:04.9692724Z             {
2026-06-15T09:27:04.9692959Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T09:27:04.9693232Z               "line": 241
2026-06-15T09:27:04.9693447Z             },
2026-06-15T09:27:04.9693637Z             {
2026-06-15T09:27:04.9693875Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T09:27:04.9694152Z               "line": 269
2026-06-15T09:27:04.9694372Z             },
2026-06-15T09:27:04.9694577Z             {
2026-06-15T09:27:04.9694824Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T09:27:04.9695105Z               "line": 300
2026-06-15T09:27:04.9695333Z             },
2026-06-15T09:27:04.9695531Z             {
2026-06-15T09:27:04.9695761Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:04.9696037Z               "line": 5827
2026-06-15T09:27:04.9696276Z             },
2026-06-15T09:27:04.9696480Z             {
2026-06-15T09:27:04.9696709Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:04.9696981Z               "line": 5885
2026-06-15T09:27:04.9697206Z             }
2026-06-15T09:27:04.9697414Z           ]
2026-06-15T09:27:04.9697606Z         },
2026-06-15T09:27:04.9697812Z         "int": {
2026-06-15T09:27:04.9698034Z           "complete": false,
2026-06-15T09:27:04.9698280Z           "evidence": []
2026-06-15T09:27:04.9698509Z         },
2026-06-15T09:27:04.9698708Z         "unit": {
2026-06-15T09:27:04.9698919Z           "complete": true,
2026-06-15T09:27:04.9699239Z           "evidence": [
2026-06-15T09:27:04.9699448Z             {
2026-06-15T09:27:04.9699691Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T09:27:04.9699972Z               "line": 419
2026-06-15T09:27:04.9700191Z             },
2026-06-15T09:27:04.9700393Z             {
2026-06-15T09:27:04.9700629Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T09:27:04.9700912Z               "line": 436
2026-06-15T09:27:04.9701129Z             },
2026-06-15T09:27:04.9701328Z             {
2026-06-15T09:27:04.9701566Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T09:27:04.9701842Z               "line": 472
2026-06-15T09:27:04.9702058Z             },
2026-06-15T09:27:04.9702262Z             {
2026-06-15T09:27:04.9702495Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T09:27:04.9702782Z               "line": 516
2026-06-15T09:27:04.9703007Z             },
2026-06-15T09:27:04.9703207Z             {
2026-06-15T09:27:04.9703439Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:04.9703711Z               "line": 7874
2026-06-15T09:27:04.9703936Z             },
2026-06-15T09:27:04.9704135Z             {
2026-06-15T09:27:04.9704364Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:04.9704641Z               "line": 7956
2026-06-15T09:27:04.9704965Z             }
2026-06-15T09:27:04.9705176Z           ]
2026-06-15T09:27:04.9705370Z         }
2026-06-15T09:27:04.9705566Z       }
2026-06-15T09:27:04.9705789Z     },
2026-06-15T09:27:04.9705987Z     {
2026-06-15T09:27:04.9706216Z       "id": "REQ-CONV-1",
2026-06-15T09:27:04.9707984Z       "title": "Peer address seeding, both cold starts: durable peer-addrs.json (identity dir) maps peer pubkey → last-known dialable address; the pump's resolver consults it FIRST with id-only discovery fallback on miss or dial failure (a stale addr never strands a peer); written by the pairing ceremony (both sides, from the live connection) and by the pump on successful connect; post-join first sync and post-restart resync converge in seconds, not ~1 min (M8 decisions 14, 20)",
2026-06-15T09:27:04.9709545Z       "requiredStages": [
2026-06-15T09:27:04.9709784Z         "impl",
2026-06-15T09:27:04.9709990Z         "unit"
2026-06-15T09:27:04.9710189Z       ],
2026-06-15T09:27:04.9710394Z       "stages": {
2026-06-15T09:27:04.9710615Z         "doc": {
2026-06-15T09:27:04.9710837Z           "complete": false,
2026-06-15T09:27:04.9711071Z           "evidence": []
2026-06-15T09:27:04.9711294Z         },
2026-06-15T09:27:04.9711501Z         "impl": {
2026-06-15T09:27:04.9711722Z           "complete": true,
2026-06-15T09:27:04.9711951Z           "evidence": [
2026-06-15T09:27:04.9712174Z             {
2026-06-15T09:27:04.9712426Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T09:27:04.9712723Z               "line": 787
2026-06-15T09:27:04.9712947Z             },
2026-06-15T09:27:04.9713157Z             {
2026-06-15T09:27:04.9713404Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T09:27:04.9713704Z               "line": 94
2026-06-15T09:27:04.9713924Z             },
2026-06-15T09:27:04.9714123Z             {
2026-06-15T09:27:04.9714361Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T09:27:04.9714652Z               "line": 345
2026-06-15T09:27:04.9714862Z             },
2026-06-15T09:27:04.9715072Z             {
2026-06-15T09:27:04.9715315Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T09:27:04.9715601Z               "line": 387
2026-06-15T09:27:04.9715817Z             },
2026-06-15T09:27:04.9716021Z             {
2026-06-15T09:27:04.9716273Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T09:27:04.9716552Z               "line": 472
2026-06-15T09:27:04.9716772Z             },
2026-06-15T09:27:04.9716971Z             {
2026-06-15T09:27:04.9717214Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:27:04.9717505Z               "line": 667
2026-06-15T09:27:04.9717729Z             },
2026-06-15T09:27:04.9717944Z             {
2026-06-15T09:27:04.9718192Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:27:04.9718483Z               "line": 693
2026-06-15T09:27:04.9718707Z             },
2026-06-15T09:27:04.9718908Z             {
2026-06-15T09:27:04.9719221Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T09:27:04.9719518Z               "line": 369
2026-06-15T09:27:04.9719733Z             },
2026-06-15T09:27:04.9719944Z             {
2026-06-15T09:27:04.9720187Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-15T09:27:04.9720467Z               "line": 19
2026-06-15T09:27:04.9720678Z             }
2026-06-15T09:27:04.9720879Z           ]
2026-06-15T09:27:04.9721078Z         },
2026-06-15T09:27:04.9721265Z         "int": {
2026-06-15T09:27:04.9721470Z           "complete": false,
2026-06-15T09:27:04.9721706Z           "evidence": []
2026-06-15T09:27:04.9721929Z         },
2026-06-15T09:27:04.9722119Z         "unit": {
2026-06-15T09:27:04.9722352Z           "complete": true,
2026-06-15T09:27:04.9722587Z           "evidence": [
2026-06-15T09:27:04.9722811Z             {
2026-06-15T09:27:04.9723044Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:27:04.9723334Z               "line": 1263
2026-06-15T09:27:04.9724207Z             },
2026-06-15T09:27:04.9724569Z             {
2026-06-15T09:27:04.9724827Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-15T09:27:04.9725127Z               "line": 108
2026-06-15T09:27:04.9725352Z             },
2026-06-15T09:27:04.9725546Z             {
2026-06-15T09:27:04.9725794Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-15T09:27:04.9726085Z               "line": 134
2026-06-15T09:27:04.9726310Z             },
2026-06-15T09:27:04.9726519Z             {
2026-06-15T09:27:04.9726771Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-15T09:27:04.9727060Z               "line": 144
2026-06-15T09:27:04.9727279Z             }
2026-06-15T09:27:04.9727574Z           ]
2026-06-15T09:27:04.9727774Z         }
2026-06-15T09:27:04.9727975Z       }
2026-06-15T09:27:04.9728175Z     },
2026-06-15T09:27:04.9728371Z     {
2026-06-15T09:27:04.9728581Z       "id": "REQ-CONV-2",
2026-06-15T09:27:04.9729988Z       "title": "Event-driven advertisement: endpoint online/offline transitions (ready-listener start/stop, rest-state transition, perch death) trigger an immediate advertise_local + peer push as a WAKE of the existing pump loop (no second advertisement path — epoch lease + visibility gates ride unchanged); the cadence stays the steady-state floor (M8 decision 15)",
2026-06-15T09:27:04.9731100Z       "requiredStages": [
2026-06-15T09:27:04.9731333Z         "impl",
2026-06-15T09:27:04.9731543Z         "unit"
2026-06-15T09:27:04.9731749Z       ],
2026-06-15T09:27:04.9731953Z       "stages": {
2026-06-15T09:27:04.9732172Z         "doc": {
2026-06-15T09:27:04.9732391Z           "complete": false,
2026-06-15T09:27:04.9785148Z           "evidence": []
2026-06-15T09:27:04.9785681Z         },
2026-06-15T09:27:04.9785910Z         "impl": {
2026-06-15T09:27:04.9786158Z           "complete": true,
2026-06-15T09:27:04.9786415Z           "evidence": [
2026-06-15T09:27:04.9786648Z             {
2026-06-15T09:27:04.9786906Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:27:04.9787221Z               "line": 359
2026-06-15T09:27:04.9787450Z             },
2026-06-15T09:27:04.9787649Z             {
2026-06-15T09:27:04.9787911Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T09:27:04.9788212Z               "line": 119
2026-06-15T09:27:04.9788427Z             },
2026-06-15T09:27:04.9788630Z             {
2026-06-15T09:27:04.9788897Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:04.9789284Z               "line": 789
2026-06-15T09:27:04.9789499Z             },
2026-06-15T09:27:04.9789695Z             {
2026-06-15T09:27:04.9789947Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:04.9790245Z               "line": 800
2026-06-15T09:27:04.9790458Z             },
2026-06-15T09:27:04.9790669Z             {
2026-06-15T09:27:04.9790911Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:27:04.9791206Z               "line": 334
2026-06-15T09:27:04.9791431Z             },
2026-06-15T09:27:04.9791651Z             {
2026-06-15T09:27:04.9791885Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:04.9792156Z               "line": 2676
2026-06-15T09:27:04.9792375Z             },
2026-06-15T09:27:04.9792577Z             {
2026-06-15T09:27:04.9792795Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:04.9793071Z               "line": 2692
2026-06-15T09:27:04.9793298Z             },
2026-06-15T09:27:04.9793497Z             {
2026-06-15T09:27:04.9793721Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:04.9793997Z               "line": 2751
2026-06-15T09:27:04.9794213Z             }
2026-06-15T09:27:04.9794413Z           ]
2026-06-15T09:27:04.9794618Z         },
2026-06-15T09:27:04.9794824Z         "int": {
2026-06-15T09:27:04.9795047Z           "complete": false,
2026-06-15T09:27:04.9795300Z           "evidence": []
2026-06-15T09:27:04.9795529Z         },
2026-06-15T09:27:04.9795727Z         "unit": {
2026-06-15T09:27:04.9795954Z           "complete": true,
2026-06-15T09:27:04.9796451Z           "evidence": [
2026-06-15T09:27:04.9796670Z             {
2026-06-15T09:27:04.9796927Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:27:04.9797227Z               "line": 889
2026-06-15T09:27:04.9797447Z             },
2026-06-15T09:27:04.9797658Z             {
2026-06-15T09:27:04.9797899Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:27:04.9798186Z               "line": 1014
2026-06-15T09:27:04.9798405Z             },
2026-06-15T09:27:04.9798599Z             {
2026-06-15T09:27:04.9798857Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T09:27:04.9799368Z               "line": 215
2026-06-15T09:27:04.9799592Z             }
2026-06-15T09:27:04.9799791Z           ]
2026-06-15T09:27:04.9799983Z         }
2026-06-15T09:27:04.9800178Z       }
2026-06-15T09:27:04.9800373Z     },
2026-06-15T09:27:04.9800565Z     {
2026-06-15T09:27:04.9800773Z       "id": "REQ-DAEMON-1",
2026-06-15T09:27:04.9801109Z       "title": "One per-machine spt-daemon owning all per-machine state",
2026-06-15T09:27:04.9801457Z       "requiredStages": [
2026-06-15T09:27:04.9801695Z         "impl",
2026-06-15T09:27:04.9801910Z         "unit",
2026-06-15T09:27:04.9802106Z         "int"
2026-06-15T09:27:04.9802316Z       ],
2026-06-15T09:27:04.9802512Z       "stages": {
2026-06-15T09:27:04.9802721Z         "doc": {
2026-06-15T09:27:04.9802945Z           "complete": false,
2026-06-15T09:27:04.9803189Z           "evidence": []
2026-06-15T09:27:04.9803413Z         },
2026-06-15T09:27:04.9803612Z         "impl": {
2026-06-15T09:27:04.9803840Z           "complete": true,
2026-06-15T09:27:04.9804081Z           "evidence": [
2026-06-15T09:27:04.9804291Z             {
2026-06-15T09:27:04.9804539Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T09:27:04.9804831Z               "line": 12
2026-06-15T09:27:04.9805045Z             },
2026-06-15T09:27:04.9805278Z             {
2026-06-15T09:27:04.9805535Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:27:04.9805850Z               "line": 16
2026-06-15T09:27:04.9806070Z             },
2026-06-15T09:27:04.9806278Z             {
2026-06-15T09:27:04.9806514Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:27:04.9806805Z               "line": 259
2026-06-15T09:27:04.9807030Z             },
2026-06-15T09:27:04.9807239Z             {
2026-06-15T09:27:04.9807482Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-15T09:27:04.9807759Z               "line": 15
2026-06-15T09:27:04.9807974Z             },
2026-06-15T09:27:04.9808179Z             {
2026-06-15T09:27:04.9808412Z               "path": "crates/spt/src/api/live.rs",
2026-06-15T09:27:04.9808688Z               "line": 13
2026-06-15T09:27:04.9808909Z             }
2026-06-15T09:27:04.9809199Z           ]
2026-06-15T09:27:04.9809402Z         },
2026-06-15T09:27:04.9809604Z         "int": {
2026-06-15T09:27:04.9809838Z           "complete": true,
2026-06-15T09:27:04.9810075Z           "evidence": [
2026-06-15T09:27:04.9810295Z             {
2026-06-15T09:27:04.9810548Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-15T09:27:04.9810844Z               "line": 32
2026-06-15T09:27:04.9811063Z             }
2026-06-15T09:27:04.9811262Z           ]
2026-06-15T09:27:04.9811457Z         },
2026-06-15T09:27:04.9811650Z         "unit": {
2026-06-15T09:27:04.9811879Z           "complete": true,
2026-06-15T09:27:04.9812114Z           "evidence": [
2026-06-15T09:27:04.9812332Z             {
2026-06-15T09:27:04.9812580Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T09:27:04.9812866Z               "line": 285
2026-06-15T09:27:04.9813086Z             },
2026-06-15T09:27:04.9813291Z             {
2026-06-15T09:27:04.9813534Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T09:27:04.9813829Z               "line": 293
2026-06-15T09:27:04.9814050Z             },
2026-06-15T09:27:04.9814257Z             {
2026-06-15T09:27:04.9814608Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T09:27:04.9814884Z               "line": 309
2026-06-15T09:27:04.9815109Z             },
2026-06-15T09:27:04.9815305Z             {
2026-06-15T09:27:04.9815547Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T09:27:04.9815834Z               "line": 317
2026-06-15T09:27:04.9816057Z             },
2026-06-15T09:27:04.9816259Z             {
2026-06-15T09:27:04.9816507Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:27:04.9816795Z               "line": 609
2026-06-15T09:27:04.9817022Z             },
2026-06-15T09:27:04.9817218Z             {
2026-06-15T09:27:04.9817585Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:27:04.9817881Z               "line": 679
2026-06-15T09:27:04.9818100Z             },
2026-06-15T09:27:04.9818305Z             {
2026-06-15T09:27:04.9818548Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-15T09:27:04.9818826Z               "line": 106
2026-06-15T09:27:04.9819258Z             },
2026-06-15T09:27:04.9819465Z             {
2026-06-15T09:27:04.9819701Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-15T09:27:04.9819977Z               "line": 132
2026-06-15T09:27:04.9820202Z             }
2026-06-15T09:27:04.9820403Z           ]
2026-06-15T09:27:04.9820597Z         }
2026-06-15T09:27:04.9820703Z       }
2026-06-15T09:27:04.9820803Z     },
2026-06-15T09:27:04.9820902Z     {
2026-06-15T09:27:04.9821018Z       "id": "REQ-DAEMON-2",
2026-06-15T09:27:04.9821194Z       "title": "Broker/brain split for seamless self-update",
2026-06-15T09:27:04.9821308Z       "requiredStages": [
2026-06-15T09:27:04.9821428Z         "impl",
2026-06-15T09:27:04.9821527Z         "unit",
2026-06-15T09:27:04.9821633Z         "int"
2026-06-15T09:27:04.9821733Z       ],
2026-06-15T09:27:04.9821841Z       "stages": {
2026-06-15T09:27:04.9821945Z         "doc": {
2026-06-15T09:27:04.9822060Z           "complete": true,
2026-06-15T09:27:04.9822168Z           "evidence": [
2026-06-15T09:27:04.9822267Z             {
2026-06-15T09:27:04.9822421Z               "path": "docs/TWO-HOST-RUNBOOK.md",
2026-06-15T09:27:04.9822529Z               "line": 250
2026-06-15T09:27:04.9822626Z             }
2026-06-15T09:27:04.9822730Z           ]
2026-06-15T09:27:04.9822835Z         },
2026-06-15T09:27:04.9822946Z         "impl": {
2026-06-15T09:27:04.9823055Z           "complete": true,
2026-06-15T09:27:04.9823168Z           "evidence": [
2026-06-15T09:27:04.9823265Z             {
2026-06-15T09:27:04.9823412Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T09:27:04.9823531Z               "line": 23
2026-06-15T09:27:04.9823632Z             },
2026-06-15T09:27:04.9823737Z             {
2026-06-15T09:27:04.9823880Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T09:27:04.9823994Z               "line": 795
2026-06-15T09:27:04.9824085Z             },
2026-06-15T09:27:04.9824176Z             {
2026-06-15T09:27:04.9824318Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T09:27:04.9824428Z               "line": 820
2026-06-15T09:27:04.9824539Z             },
2026-06-15T09:27:04.9824643Z             {
2026-06-15T09:27:04.9824789Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T09:27:04.9824894Z               "line": 1026
2026-06-15T09:27:04.9825002Z             },
2026-06-15T09:27:04.9825101Z             {
2026-06-15T09:27:04.9825246Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:27:04.9825364Z               "line": 32
2026-06-15T09:27:04.9825463Z             },
2026-06-15T09:27:04.9825565Z             {
2026-06-15T09:27:04.9825711Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:27:04.9825832Z               "line": 549
2026-06-15T09:27:04.9825936Z             },
2026-06-15T09:27:04.9826031Z             {
2026-06-15T09:27:04.9826175Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:27:04.9826284Z               "line": 1055
2026-06-15T09:27:04.9826490Z             },
2026-06-15T09:27:04.9826603Z             {
2026-06-15T09:27:04.9826742Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:27:04.9826857Z               "line": 1342
2026-06-15T09:27:04.9826956Z             },
2026-06-15T09:27:04.9827062Z             {
2026-06-15T09:27:04.9827196Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-15T09:27:04.9827303Z               "line": 11
2026-06-15T09:27:04.9827408Z             },
2026-06-15T09:27:04.9827503Z             {
2026-06-15T09:27:04.9827639Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:27:04.9827744Z               "line": 146
2026-06-15T09:27:04.9827954Z             },
2026-06-15T09:27:04.9828055Z             {
2026-06-15T09:27:04.9828208Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:27:04.9828316Z               "line": 274
2026-06-15T09:27:04.9828418Z             },
2026-06-15T09:27:04.9828621Z             {
2026-06-15T09:27:04.9828784Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T09:27:04.9829194Z               "line": 13
2026-06-15T09:27:04.9829343Z             },
2026-06-15T09:27:04.9829514Z             {
2026-06-15T09:27:04.9829706Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T09:27:04.9829871Z               "line": 27
2026-06-15T09:27:04.9830063Z             },
2026-06-15T09:27:04.9830204Z             {
2026-06-15T09:27:04.9830429Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T09:27:04.9830566Z               "line": 130
2026-06-15T09:27:04.9830729Z             },
2026-06-15T09:27:04.9830843Z             {
2026-06-15T09:27:04.9831110Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T09:27:04.9831297Z               "line": 537
2026-06-15T09:27:04.9831425Z             },
2026-06-15T09:27:04.9831578Z             {
2026-06-15T09:27:04.9831735Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T09:27:04.9831959Z               "line": 705
2026-06-15T09:27:04.9832101Z             },
2026-06-15T09:27:04.9832256Z             {
2026-06-15T09:27:04.9832453Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T09:27:04.9832578Z               "line": 849
2026-06-15T09:27:04.9832789Z             },
2026-06-15T09:27:04.9832938Z             {
2026-06-15T09:27:04.9833138Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T09:27:04.9833310Z               "line": 936
2026-06-15T09:27:04.9833423Z             },
2026-06-15T09:27:04.9833643Z             {
2026-06-15T09:27:04.9833811Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T09:27:04.9833972Z               "line": 982
2026-06-15T09:27:04.9834111Z             },
2026-06-15T09:27:04.9834244Z             {
2026-06-15T09:27:04.9834526Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-15T09:27:04.9834659Z               "line": 10
2026-06-15T09:27:04.9834826Z             }
2026-06-15T09:27:04.9834964Z           ]
2026-06-15T09:27:04.9835104Z         },
2026-06-15T09:27:04.9835273Z         "int": {
2026-06-15T09:27:04.9835478Z           "complete": true,
2026-06-15T09:27:04.9835647Z           "evidence": [
2026-06-15T09:27:04.9835776Z             {
2026-06-15T09:27:04.9835976Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-15T09:27:04.9836163Z               "line": 17
2026-06-15T09:27:04.9836339Z             },
2026-06-15T09:27:04.9836487Z             {
2026-06-15T09:27:04.9836668Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-15T09:27:04.9836820Z               "line": 71
2026-06-15T09:27:04.9836992Z             },
2026-06-15T09:27:04.9837163Z             {
2026-06-15T09:27:04.9837351Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-15T09:27:04.9837516Z               "line": 91
2026-06-15T09:27:04.9837670Z             },
2026-06-15T09:27:04.9837835Z             {
2026-06-15T09:27:04.9838063Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-15T09:27:04.9838199Z               "line": 167
2026-06-15T09:27:04.9838476Z             },
2026-06-15T09:27:04.9838605Z             {
2026-06-15T09:27:04.9838843Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-15T09:27:04.9839120Z               "line": 209
2026-06-15T09:27:04.9839250Z             },
2026-06-15T09:27:04.9839426Z             {
2026-06-15T09:27:04.9839603Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-15T09:27:04.9839792Z               "line": 128
2026-06-15T09:27:04.9839965Z             },
2026-06-15T09:27:04.9840088Z             {
2026-06-15T09:27:04.9840299Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-15T09:27:04.9840547Z               "line": 59
2026-06-15T09:27:04.9840731Z             }
2026-06-15T09:27:04.9840879Z           ]
2026-06-15T09:27:04.9841054Z         },
2026-06-15T09:27:04.9841228Z         "unit": {
2026-06-15T09:27:04.9841369Z           "complete": true,
2026-06-15T09:27:04.9841552Z           "evidence": [
2026-06-15T09:27:04.9841698Z             {
2026-06-15T09:27:04.9841918Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-15T09:27:04.9842084Z               "line": 62
2026-06-15T09:27:04.9842214Z             },
2026-06-15T09:27:04.9842390Z             {
2026-06-15T09:27:04.9842580Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-15T09:27:04.9842763Z               "line": 76
2026-06-15T09:27:04.9842886Z             },
2026-06-15T09:27:04.9843051Z             {
2026-06-15T09:27:04.9843278Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-15T09:27:04.9843441Z               "line": 88
2026-06-15T09:27:04.9843593Z             },
2026-06-15T09:27:04.9843726Z             {
2026-06-15T09:27:04.9843936Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-15T09:27:04.9844051Z               "line": 294
2026-06-15T09:27:04.9844279Z             },
2026-06-15T09:27:04.9844447Z             {
2026-06-15T09:27:04.9844613Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T09:27:04.9844790Z               "line": 771
2026-06-15T09:27:04.9844904Z             },
2026-06-15T09:27:04.9845133Z             {
2026-06-15T09:27:04.9845325Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T09:27:04.9845457Z               "line": 779
2026-06-15T09:27:04.9845621Z             },
2026-06-15T09:27:04.9845725Z             {
2026-06-15T09:27:04.9845991Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T09:27:04.9846131Z               "line": 796
2026-06-15T09:27:04.9846298Z             },
2026-06-15T09:27:04.9846460Z             {
2026-06-15T09:27:04.9846613Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T09:27:04.9846846Z               "line": 850
2026-06-15T09:27:04.9846980Z             },
2026-06-15T09:27:04.9847137Z             {
2026-06-15T09:27:04.9847314Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T09:27:04.9847490Z               "line": 1053
2026-06-15T09:27:04.9847700Z             },
2026-06-15T09:27:04.9847828Z             {
2026-06-15T09:27:04.9848038Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T09:27:04.9848178Z               "line": 1065
2026-06-15T09:27:04.9848334Z             },
2026-06-15T09:27:04.9848548Z             {
2026-06-15T09:27:04.9848722Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-15T09:27:04.9848893Z               "line": 110
2026-06-15T09:27:04.9849103Z             },
2026-06-15T09:27:04.9849261Z             {
2026-06-15T09:27:04.9849547Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-15T09:27:04.9849732Z               "line": 143
2026-06-15T09:27:04.9849890Z             }
2026-06-15T09:27:04.9850028Z           ]
2026-06-15T09:27:04.9850167Z         }
2026-06-15T09:27:04.9850334Z       }
2026-06-15T09:27:04.9850506Z     },
2026-06-15T09:27:04.9850634Z     {
2026-06-15T09:27:04.9850826Z       "id": "REQ-DAEMON-3",
2026-06-15T09:27:04.9851059Z       "title": "Any api invocation auto-starts the daemon if absent",
2026-06-15T09:27:04.9851244Z       "requiredStages": [
2026-06-15T09:27:04.9851516Z         "impl",
2026-06-15T09:27:04.9851662Z         "unit",
2026-06-15T09:27:04.9851834Z         "int"
2026-06-15T09:27:04.9851977Z       ],
2026-06-15T09:27:04.9852145Z       "stages": {
2026-06-15T09:27:04.9852325Z         "doc": {
2026-06-15T09:27:04.9852483Z           "complete": false,
2026-06-15T09:27:04.9852650Z           "evidence": []
2026-06-15T09:27:04.9852831Z         },
2026-06-15T09:27:04.9853032Z         "impl": {
2026-06-15T09:27:04.9853231Z           "complete": true,
2026-06-15T09:27:04.9853371Z           "evidence": [
2026-06-15T09:27:04.9853536Z             {
2026-06-15T09:27:04.9853707Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:27:04.9854010Z               "line": 14
2026-06-15T09:27:04.9854172Z             },
2026-06-15T09:27:04.9854325Z             {
2026-06-15T09:27:04.9854539Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-15T09:27:04.9854674Z               "line": 11
2026-06-15T09:27:04.9854868Z             },
2026-06-15T09:27:04.9855031Z             {
2026-06-15T09:27:04.9855231Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T09:27:04.9855398Z               "line": 270
2026-06-15T09:27:04.9855521Z             },
2026-06-15T09:27:04.9855707Z             {
2026-06-15T09:27:04.9855890Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:04.9856060Z               "line": 1705
2026-06-15T09:27:04.9856300Z             },
2026-06-15T09:27:04.9856459Z             {
2026-06-15T09:27:04.9856686Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:04.9856830Z               "line": 3795
2026-06-15T09:27:04.9856992Z             },
2026-06-15T09:27:04.9857130Z             {
2026-06-15T09:27:04.9857316Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:04.9857454Z               "line": 3816
2026-06-15T09:27:04.9857669Z             }
2026-06-15T09:27:04.9857827Z           ]
2026-06-15T09:27:04.9857960Z         },
2026-06-15T09:27:04.9858142Z         "int": {
2026-06-15T09:27:04.9858274Z           "complete": true,
2026-06-15T09:27:04.9858486Z           "evidence": [
2026-06-15T09:27:04.9858651Z             {
2026-06-15T09:27:04.9858829Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T09:27:04.9859093Z               "line": 49
2026-06-15T09:27:04.9859211Z             },
2026-06-15T09:27:04.9859425Z             {
2026-06-15T09:27:04.9859597Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T09:27:04.9859774Z               "line": 439
2026-06-15T09:27:04.9859949Z             }
2026-06-15T09:27:04.9860055Z           ]
2026-06-15T09:27:04.9860269Z         },
2026-06-15T09:27:04.9860403Z         "unit": {
2026-06-15T09:27:04.9860583Z           "complete": true,
2026-06-15T09:27:04.9860732Z           "evidence": [
2026-06-15T09:27:04.9860875Z             {
2026-06-15T09:27:04.9861127Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:27:04.9861260Z               "line": 767
2026-06-15T09:27:04.9861437Z             },
2026-06-15T09:27:04.9861557Z             {
2026-06-15T09:27:04.9861729Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:04.9861936Z               "line": 8955
2026-06-15T09:27:04.9862071Z             }
2026-06-15T09:27:04.9862251Z           ]
2026-06-15T09:27:04.9862372Z         }
2026-06-15T09:27:04.9862518Z       }
2026-06-15T09:27:04.9862682Z     },
2026-06-15T09:27:04.9862856Z     {
2026-06-15T09:27:04.9863287Z       "id": "REQ-DAEMON-4",
2026-06-15T09:27:04.9863463Z       "title": "Honor every KNOWN-HAZARDS invariant",
2026-06-15T09:27:04.9863621Z       "requiredStages": [
2026-06-15T09:27:04.9863796Z         "impl",
2026-06-15T09:27:04.9863978Z         "unit",
2026-06-15T09:27:04.9864129Z         "int"
2026-06-15T09:27:04.9864291Z       ],
2026-06-15T09:27:04.9864442Z       "stages": {
2026-06-15T09:27:04.9864609Z         "doc": {
2026-06-15T09:27:04.9864808Z           "complete": false,
2026-06-15T09:27:04.9864952Z           "evidence": []
2026-06-15T09:27:04.9865114Z         },
2026-06-15T09:27:04.9865357Z         "impl": {
2026-06-15T09:27:04.9865563Z           "complete": true,
2026-06-15T09:27:04.9865772Z           "evidence": [
2026-06-15T09:27:04.9865901Z             {
2026-06-15T09:27:04.9866116Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:27:04.9866253Z               "line": 414
2026-06-15T09:27:04.9866431Z             },
2026-06-15T09:27:04.9866625Z             {
2026-06-15T09:27:04.9866803Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:27:04.9866977Z               "line": 479
2026-06-15T09:27:04.9867101Z             },
2026-06-15T09:27:04.9867299Z             {
2026-06-15T09:27:04.9867595Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:27:04.9867768Z               "line": 501
2026-06-15T09:27:04.9867938Z             }
2026-06-15T09:27:04.9868082Z           ]
2026-06-15T09:27:04.9868271Z         },
2026-06-15T09:27:04.9868421Z         "int": {
2026-06-15T09:27:04.9868586Z           "complete": true,
2026-06-15T09:27:04.9868731Z           "evidence": [
2026-06-15T09:27:04.9868911Z             {
2026-06-15T09:27:04.9869221Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-15T09:27:04.9869361Z               "line": 37
2026-06-15T09:27:04.9869525Z             }
2026-06-15T09:27:04.9869653Z           ]
2026-06-15T09:27:04.9869833Z         },
2026-06-15T09:27:04.9870014Z         "unit": {
2026-06-15T09:27:04.9870166Z           "complete": true,
2026-06-15T09:27:04.9870334Z           "evidence": [
2026-06-15T09:27:04.9870467Z             {
2026-06-15T09:27:04.9870677Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T09:27:04.9870805Z               "line": 428
2026-06-15T09:27:04.9871015Z             },
2026-06-15T09:27:04.9871182Z             {
2026-06-15T09:27:04.9871368Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:27:04.9871540Z               "line": 907
2026-06-15T09:27:04.9871654Z             },
2026-06-15T09:27:04.9871860Z             {
2026-06-15T09:27:04.9872030Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:27:04.9872218Z               "line": 977
2026-06-15T09:27:04.9872378Z             },
2026-06-15T09:27:04.9872497Z             {
2026-06-15T09:27:04.9872749Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:27:04.9872888Z               "line": 1007
2026-06-15T09:27:04.9873069Z             },
2026-06-15T09:27:04.9873227Z             {
2026-06-15T09:27:04.9873374Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:27:04.9873599Z               "line": 1040
2026-06-15T09:27:04.9873727Z             }
2026-06-15T09:27:04.9873909Z           ]
2026-06-15T09:27:04.9874042Z         }
2026-06-15T09:27:04.9874186Z       }
2026-06-15T09:27:04.9874400Z     },
2026-06-15T09:27:04.9874538Z     {
2026-06-15T09:27:04.9874709Z       "id": "REQ-DAEMON-5",
2026-06-15T09:27:04.9876251Z       "title": "Pump liveness: the peer pump writes a last-tick heartbeat consumed by daemon status / subnet status (decision 23 render legs in REQ-CLI-2/REQ-SUBNET-8); the daemon supervises the pump task — a panic is caught, logged loudly, and the pump restarts with capped backoff (≤5 min), so a 5.9-class death self-heals visibly instead of silently halving the daemon (M8 decision 23; field motivation: hfenduleam 2026-06-07 half-death)",
2026-06-15T09:27:04.9876433Z       "requiredStages": [
2026-06-15T09:27:04.9876661Z         "impl",
2026-06-15T09:27:04.9876809Z         "unit"
2026-06-15T09:27:04.9876971Z       ],
2026-06-15T09:27:04.9877101Z       "stages": {
2026-06-15T09:27:04.9877243Z         "doc": {
2026-06-15T09:27:04.9877476Z           "complete": false,
2026-06-15T09:27:04.9877623Z           "evidence": []
2026-06-15T09:27:04.9877784Z         },
2026-06-15T09:27:04.9877912Z         "impl": {
2026-06-15T09:27:04.9878065Z           "complete": true,
2026-06-15T09:27:04.9878722Z           "evidence": [
2026-06-15T09:27:04.9878913Z             {
2026-06-15T09:27:04.9879208Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:27:04.9879466Z               "line": 476
2026-06-15T09:27:04.9879620Z             },
2026-06-15T09:27:04.9879814Z             {
2026-06-15T09:27:04.9880047Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:27:04.9880175Z               "line": 769
2026-06-15T09:27:04.9880336Z             },
2026-06-15T09:27:04.9880502Z             {
2026-06-15T09:27:04.9880707Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:27:04.9880894Z               "line": 782
2026-06-15T09:27:04.9881022Z             },
2026-06-15T09:27:04.9881190Z             {
2026-06-15T09:27:04.9881485Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:27:04.9887842Z               "line": 800
2026-06-15T09:27:04.9887994Z             },
2026-06-15T09:27:04.9888097Z             {
2026-06-15T09:27:04.9888259Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:27:04.9888372Z               "line": 841
2026-06-15T09:27:04.9888481Z             }
2026-06-15T09:27:04.9888592Z           ]
2026-06-15T09:27:04.9888687Z         },
2026-06-15T09:27:04.9888791Z         "int": {
2026-06-15T09:27:04.9888912Z           "complete": false,
2026-06-15T09:27:04.9889096Z           "evidence": []
2026-06-15T09:27:04.9889197Z         },
2026-06-15T09:27:04.9889302Z         "unit": {
2026-06-15T09:27:04.9889435Z           "complete": true,
2026-06-15T09:27:04.9889550Z           "evidence": [
2026-06-15T09:27:04.9889645Z             {
2026-06-15T09:27:04.9889803Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:27:04.9889908Z               "line": 1189
2026-06-15T09:27:04.9890021Z             },
2026-06-15T09:27:04.9890123Z             {
2026-06-15T09:27:04.9890279Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:27:04.9890389Z               "line": 1213
2026-06-15T09:27:04.9890495Z             },
2026-06-15T09:27:04.9890598Z             {
2026-06-15T09:27:04.9890740Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:27:04.9890855Z               "line": 1239
2026-06-15T09:27:04.9890943Z             }
2026-06-15T09:27:04.9891043Z           ]
2026-06-15T09:27:04.9891149Z         }
2026-06-15T09:27:04.9891249Z       }
2026-06-15T09:27:04.9891353Z     },
2026-06-15T09:27:04.9891450Z     {
2026-06-15T09:27:04.9891564Z       "id": "REQ-DAEMON-6",
2026-06-15T09:27:04.9893637Z       "title": "Service-aware `daemon start`/`stop`: when an OS service manager has a registered spt-daemon for this user, `spt daemon start` and `spt daemon stop` drive THAT service (so stop doesn't IPC-kill a unit that auto-restart-fights for the broker socket — the kitsubito 2026-06-08 loop). `start` graduates from a `run` alias to a first-class background verb (ensure-up, idempotent, non-blocking); stop routes managed→manager, manual→IPC. Linux=systemd user unit (`systemctl --user start|stop|is-active spt-daemon`, detected by unit-file presence); Windows=no controllable manager (the logon task is boot-only), so start=detached spawn / stop=IPC.",
2026-06-15T09:27:04.9893776Z       "requiredStages": [
2026-06-15T09:27:04.9893879Z         "impl",
2026-06-15T09:27:04.9893985Z         "unit"
2026-06-15T09:27:04.9894090Z       ],
2026-06-15T09:27:04.9894199Z       "stages": {
2026-06-15T09:27:04.9894300Z         "doc": {
2026-06-15T09:27:04.9894424Z           "complete": false,
2026-06-15T09:27:04.9894537Z           "evidence": []
2026-06-15T09:27:04.9894644Z         },
2026-06-15T09:27:04.9894743Z         "impl": {
2026-06-15T09:27:04.9894862Z           "complete": true,
2026-06-15T09:27:04.9894973Z           "evidence": [
2026-06-15T09:27:04.9895072Z             {
2026-06-15T09:27:04.9895235Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:27:04.9895339Z               "line": 426
2026-06-15T09:27:04.9895443Z             },
2026-06-15T09:27:04.9895544Z             {
2026-06-15T09:27:04.9895691Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:27:04.9895948Z               "line": 457
2026-06-15T09:27:04.9896051Z             },
2026-06-15T09:27:04.9896160Z             {
2026-06-15T09:27:04.9896299Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T09:27:04.9896413Z               "line": 55
2026-06-15T09:27:04.9896518Z             },
2026-06-15T09:27:04.9896628Z             {
2026-06-15T09:27:04.9896779Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T09:27:04.9896890Z               "line": 70
2026-06-15T09:27:04.9896990Z             },
2026-06-15T09:27:04.9897094Z             {
2026-06-15T09:27:04.9897229Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:04.9897333Z               "line": 1759
2026-06-15T09:27:04.9897525Z             },
2026-06-15T09:27:04.9897629Z             {
2026-06-15T09:27:04.9897757Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:04.9897873Z               "line": 1785
2026-06-15T09:27:04.9897972Z             }
2026-06-15T09:27:04.9898077Z           ]
2026-06-15T09:27:04.9898192Z         },
2026-06-15T09:27:04.9898287Z         "int": {
2026-06-15T09:27:04.9898402Z           "complete": false,
2026-06-15T09:27:04.9898507Z           "evidence": []
2026-06-15T09:27:04.9898611Z         },
2026-06-15T09:27:04.9898710Z         "unit": {
2026-06-15T09:27:04.9898829Z           "complete": true,
2026-06-15T09:27:04.9899252Z           "evidence": [
2026-06-15T09:27:04.9899351Z             {
2026-06-15T09:27:04.9899496Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T09:27:04.9899604Z               "line": 288
2026-06-15T09:27:04.9899709Z             },
2026-06-15T09:27:04.9899810Z             {
2026-06-15T09:27:04.9899957Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T09:27:04.9900082Z               "line": 299
2026-06-15T09:27:04.9900186Z             },
2026-06-15T09:27:04.9900281Z             {
2026-06-15T09:27:04.9900425Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T09:27:04.9900543Z               "line": 325
2026-06-15T09:27:04.9900649Z             },
2026-06-15T09:27:04.9900750Z             {
2026-06-15T09:27:04.9900902Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T09:27:04.9900998Z               "line": 351
2026-06-15T09:27:04.9901103Z             }
2026-06-15T09:27:04.9901200Z           ]
2026-06-15T09:27:04.9901300Z         }
2026-06-15T09:27:04.9901401Z       }
2026-06-15T09:27:04.9901504Z     },
2026-06-15T09:27:04.9901608Z     {
2026-06-15T09:27:04.9901719Z       "id": "REQ-DAEMON-7",
2026-06-15T09:27:04.9903196Z       "title": "`daemon run` is foreground-consistent on every platform: the invoking process IS the daemon, blocks until signalled, never auto-detaches or respawns into an invisible background task. The detached/de-elevated background behavior lives ONLY in `start`. Windows: an ELEVATED `daemon run` refuses with guidance (use `start`, or an unelevated shell) instead of respawning detached/de-elevated and vanishing (KH 5.7 preserved — it still never serves elevated).",
2026-06-15T09:27:04.9903326Z       "requiredStages": [
2026-06-15T09:27:04.9903425Z         "impl",
2026-06-15T09:27:04.9903526Z         "unit"
2026-06-15T09:27:04.9903617Z       ],
2026-06-15T09:27:04.9903720Z       "stages": {
2026-06-15T09:27:04.9903821Z         "doc": {
2026-06-15T09:27:04.9903941Z           "complete": false,
2026-06-15T09:27:04.9904044Z           "evidence": []
2026-06-15T09:27:04.9904144Z         },
2026-06-15T09:27:04.9904244Z         "impl": {
2026-06-15T09:27:04.9904345Z           "complete": true,
2026-06-15T09:27:04.9904459Z           "evidence": [
2026-06-15T09:27:04.9904559Z             {
2026-06-15T09:27:04.9904702Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:27:04.9904811Z               "line": 476
2026-06-15T09:27:04.9904913Z             },
2026-06-15T09:27:04.9905012Z             {
2026-06-15T09:27:04.9905165Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T09:27:04.9905279Z               "line": 601
2026-06-15T09:27:04.9905489Z             },
2026-06-15T09:27:04.9905594Z             {
2026-06-15T09:27:04.9905741Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T09:27:04.9905843Z               "line": 89
2026-06-15T09:27:04.9905946Z             },
2026-06-15T09:27:04.9906046Z             {
2026-06-15T09:27:04.9906182Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:04.9906294Z               "line": 1706
2026-06-15T09:27:04.9906398Z             }
2026-06-15T09:27:04.9906499Z           ]
2026-06-15T09:27:04.9906606Z         },
2026-06-15T09:27:04.9906705Z         "int": {
2026-06-15T09:27:04.9906811Z           "complete": false,
2026-06-15T09:27:04.9906921Z           "evidence": []
2026-06-15T09:27:04.9907116Z         },
2026-06-15T09:27:04.9907226Z         "unit": {
2026-06-15T09:27:04.9907340Z           "complete": true,
2026-06-15T09:27:04.9907446Z           "evidence": [
2026-06-15T09:27:04.9907551Z             {
2026-06-15T09:27:04.9907693Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T09:27:04.9907812Z               "line": 314
2026-06-15T09:27:04.9907912Z             },
2026-06-15T09:27:04.9908017Z             {
2026-06-15T09:27:04.9908146Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:04.9908251Z               "line": 6548
2026-06-15T09:27:04.9908371Z             }
2026-06-15T09:27:04.9908475Z           ]
2026-06-15T09:27:04.9908580Z         }
2026-06-15T09:27:04.9908681Z       }
2026-06-15T09:27:04.9908785Z     },
2026-06-15T09:27:04.9908885Z     {
2026-06-15T09:27:04.9909086Z       "id": "REQ-DAEMON-8",
2026-06-15T09:27:04.9910093Z       "title": "Internal auto-start prefers the service: `ensure_running` (any spt command's implicit daemon start, REQ-DAEMON-3) routes through the service-aware start path — when a manager has a registered service it starts THAT, never a competing manual `spawn_detached` daemon that would fight the service for the socket.",
2026-06-15T09:27:04.9910212Z       "requiredStages": [
2026-06-15T09:27:04.9910332Z         "impl",
2026-06-15T09:27:04.9910437Z         "unit"
2026-06-15T09:27:04.9910540Z       ],
2026-06-15T09:27:04.9910647Z       "stages": {
2026-06-15T09:27:04.9910751Z         "doc": {
2026-06-15T09:27:04.9910865Z           "complete": false,
2026-06-15T09:27:04.9910971Z           "evidence": []
2026-06-15T09:27:04.9911075Z         },
2026-06-15T09:27:04.9911175Z         "impl": {
2026-06-15T09:27:04.9911291Z           "complete": true,
2026-06-15T09:27:04.9911404Z           "evidence": [
2026-06-15T09:27:04.9911499Z             {
2026-06-15T09:27:04.9911653Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:27:04.9911756Z               "line": 376
2026-06-15T09:27:04.9911860Z             },
2026-06-15T09:27:04.9911956Z             {
2026-06-15T09:27:04.9912097Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T09:27:04.9912202Z               "line": 56
2026-06-15T09:27:04.9912303Z             }
2026-06-15T09:27:04.9912407Z           ]
2026-06-15T09:27:04.9912507Z         },
2026-06-15T09:27:04.9912618Z         "int": {
2026-06-15T09:27:04.9912726Z           "complete": false,
2026-06-15T09:27:04.9912841Z           "evidence": []
2026-06-15T09:27:04.9912946Z         },
2026-06-15T09:27:04.9913046Z         "unit": {
2026-06-15T09:27:04.9913156Z           "complete": true,
2026-06-15T09:27:04.9913256Z           "evidence": [
2026-06-15T09:27:04.9913356Z             {
2026-06-15T09:27:04.9913505Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T09:27:04.9913623Z               "line": 288
2026-06-15T09:27:04.9913722Z             },
2026-06-15T09:27:04.9913824Z             {
2026-06-15T09:27:04.9913970Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T09:27:04.9914076Z               "line": 325
2026-06-15T09:27:04.9914177Z             }
2026-06-15T09:27:04.9914281Z           ]
2026-06-15T09:27:04.9914381Z         }
2026-06-15T09:27:04.9914482Z       }
2026-06-15T09:27:04.9914581Z     },
2026-06-15T09:27:04.9914685Z     {
2026-06-15T09:27:04.9914915Z       "id": "REQ-DAEMON-9",
2026-06-15T09:27:04.9920939Z       "title": "Net-bind boot-race resilience: a daemon that comes up net-less (NetHost::start failed — e.g. the systemd unit autostarted before the network/DNS stack was ready, `Failed to create an address lookup service`) must SELF-HEAL — retry the net bring-up in the background with capped backoff and, on success, attach net to the broker + spawn the dispatcher/peer-pump (which today are gated on `net_up` at boot and so never start, leaving the node silently unreachable until a manual restart — kitsubito 2026-06-08). Status surfaces the net-less state honestly (a net-less broker renders as 'no connection', not only a pump-STALLED line with a bogus pre-boot heartbeat age). The installer's autostart unit waits for the network (`Wants=/After=network-online.target`) as belt-and-suspenders.",
2026-06-15T09:27:04.9921254Z       "requiredStages": [
2026-06-15T09:27:04.9921359Z         "impl",
2026-06-15T09:27:04.9921459Z         "unit"
2026-06-15T09:27:04.9921569Z       ],
2026-06-15T09:27:04.9921673Z       "stages": {
2026-06-15T09:27:04.9921779Z         "doc": {
2026-06-15T09:27:04.9921889Z           "complete": false,
2026-06-15T09:27:04.9922002Z           "evidence": []
2026-06-15T09:27:04.9922108Z         },
2026-06-15T09:27:04.9922213Z         "impl": {
2026-06-15T09:27:04.9922331Z           "complete": true,
2026-06-15T09:27:04.9922435Z           "evidence": [
2026-06-15T09:27:04.9922535Z             {
2026-06-15T09:27:04.9922699Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:27:04.9922815Z               "line": 262
2026-06-15T09:27:04.9922911Z             },
2026-06-15T09:27:04.9923009Z             {
2026-06-15T09:27:04.9923173Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:27:04.9923272Z               "line": 600
2026-06-15T09:27:04.9923377Z             },
2026-06-15T09:27:04.9923473Z             {
2026-06-15T09:27:04.9923625Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:27:04.9923736Z               "line": 190
2026-06-15T09:27:04.9923835Z             },
2026-06-15T09:27:04.9923940Z             {
2026-06-15T09:27:04.9924079Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:27:04.9924183Z               "line": 275
2026-06-15T09:27:04.9924283Z             },
2026-06-15T09:27:04.9924390Z             {
2026-06-15T09:27:04.9924531Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:27:04.9924631Z               "line": 312
2026-06-15T09:27:04.9924732Z             },
2026-06-15T09:27:04.9924836Z             {
2026-06-15T09:27:04.9924975Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:04.9925085Z               "line": 1814
2026-06-15T09:27:04.9925193Z             }
2026-06-15T09:27:04.9925293Z           ]
2026-06-15T09:27:04.9925394Z         },
2026-06-15T09:27:04.9925494Z         "int": {
2026-06-15T09:27:04.9925608Z           "complete": false,
2026-06-15T09:27:04.9925723Z           "evidence": []
2026-06-15T09:27:04.9925827Z         },
2026-06-15T09:27:04.9925932Z         "unit": {
2026-06-15T09:27:04.9926038Z           "complete": true,
2026-06-15T09:27:04.9926133Z           "evidence": [
2026-06-15T09:27:04.9926237Z             {
2026-06-15T09:27:04.9926386Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:27:04.9926490Z               "line": 723
2026-06-15T09:27:04.9926585Z             },
2026-06-15T09:27:04.9926691Z             {
2026-06-15T09:27:04.9926824Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:04.9926930Z               "line": 8820
2026-06-15T09:27:04.9927034Z             }
2026-06-15T09:27:04.9927134Z           ]
2026-06-15T09:27:04.9927239Z         }
2026-06-15T09:27:04.9927344Z       }
2026-06-15T09:27:04.9927447Z     },
2026-06-15T09:27:04.9927547Z     {
2026-06-15T09:27:04.9927662Z       "id": "REQ-DOCS-1",
2026-06-15T09:27:04.9927894Z       "title": "Dual-audience docs (human + AI dev-agent), markdown once / two depths",
2026-06-15T09:27:04.9928014Z       "requiredStages": [
2026-06-15T09:27:04.9928213Z         "doc",
2026-06-15T09:27:04.9928313Z         "impl"
2026-06-15T09:27:04.9928417Z       ],
2026-06-15T09:27:04.9928528Z       "stages": {
2026-06-15T09:27:04.9928628Z         "doc": {
2026-06-15T09:27:04.9928751Z           "complete": true,
2026-06-15T09:27:04.9928857Z           "evidence": [
2026-06-15T09:27:04.9929033Z             {
2026-06-15T09:27:04.9929167Z               "path": "docs-site/src/index.md",
2026-06-15T09:27:04.9929285Z               "line": 50
2026-06-15T09:27:04.9929400Z             }
2026-06-15T09:27:04.9929515Z           ]
2026-06-15T09:27:04.9929610Z         },
2026-06-15T09:27:04.9929714Z         "impl": {
2026-06-15T09:27:04.9929934Z           "complete": true,
2026-06-15T09:27:04.9930039Z           "evidence": [
2026-06-15T09:27:04.9930140Z             {
2026-06-15T09:27:04.9930305Z               "path": ".github/workflows/docs-publish.yml",
2026-06-15T09:27:04.9930409Z               "line": 12
2026-06-15T09:27:04.9930510Z             },
2026-06-15T09:27:04.9930617Z             {
2026-06-15T09:27:04.9930756Z               "path": "crates/xtask/src/main.rs",
2026-06-15T09:27:04.9930861Z               "line": 14
2026-06-15T09:27:04.9930965Z             }
2026-06-15T09:27:04.9931065Z           ]
2026-06-15T09:27:04.9931161Z         },
2026-06-15T09:27:04.9931261Z         "int": {
2026-06-15T09:27:04.9931365Z           "complete": false,
2026-06-15T09:27:04.9931481Z           "evidence": []
2026-06-15T09:27:04.9931576Z         },
2026-06-15T09:27:04.9931675Z         "unit": {
2026-06-15T09:27:04.9931796Z           "complete": false,
2026-06-15T09:27:04.9931900Z           "evidence": []
2026-06-15T09:27:04.9932004Z         }
2026-06-15T09:27:04.9932106Z       }
2026-06-15T09:27:04.9932209Z     },
2026-06-15T09:27:04.9932310Z     {
2026-06-15T09:27:04.9932416Z       "id": "REQ-DOCS-2",
2026-06-15T09:27:04.9932611Z       "title": "Sub-10-minute runnable killer quickstart per audience",
2026-06-15T09:27:04.9932717Z       "requiredStages": [
2026-06-15T09:27:04.9932825Z         "doc",
2026-06-15T09:27:04.9932924Z         "int"
2026-06-15T09:27:04.9933019Z       ],
2026-06-15T09:27:04.9933128Z       "stages": {
2026-06-15T09:27:04.9933236Z         "doc": {
2026-06-15T09:27:04.9933341Z           "complete": true,
2026-06-15T09:27:04.9933447Z           "evidence": [
2026-06-15T09:27:04.9933551Z             {
2026-06-15T09:27:04.9933752Z               "path": "docs-site/src/harness-contract/integration-checklist.md",
2026-06-15T09:27:04.9933870Z               "line": 3
2026-06-15T09:27:04.9933966Z             },
2026-06-15T09:27:04.9934071Z             {
2026-06-15T09:27:04.9934228Z               "path": "docs-site/src/quickstart/adapter.md",
2026-06-15T09:27:04.9934339Z               "line": 3
2026-06-15T09:27:04.9934443Z             },
2026-06-15T09:27:04.9934542Z             {
2026-06-15T09:27:04.9934705Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-15T09:27:04.9934815Z               "line": 3
2026-06-15T09:27:04.9934920Z             }
2026-06-15T09:27:04.9935025Z           ]
2026-06-15T09:27:04.9935125Z         },
2026-06-15T09:27:04.9935230Z         "impl": {
2026-06-15T09:27:04.9935344Z           "complete": false,
2026-06-15T09:27:04.9935463Z           "evidence": []
2026-06-15T09:27:04.9935564Z         },
2026-06-15T09:27:04.9935664Z         "int": {
2026-06-15T09:27:04.9935781Z           "complete": true,
2026-06-15T09:27:04.9935891Z           "evidence": [
2026-06-15T09:27:04.9935997Z             {
2026-06-15T09:27:04.9936139Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-15T09:27:04.9936249Z               "line": 14
2026-06-15T09:27:04.9936345Z             }
2026-06-15T09:27:04.9936439Z           ]
2026-06-15T09:27:04.9936541Z         },
2026-06-15T09:27:04.9936645Z         "unit": {
2026-06-15T09:27:04.9936763Z           "complete": false,
2026-06-15T09:27:04.9936865Z           "evidence": []
2026-06-15T09:27:04.9936970Z         }
2026-06-15T09:27:04.9937074Z       }
2026-06-15T09:27:04.9937170Z     },
2026-06-15T09:27:04.9937379Z     {
2026-06-15T09:27:04.9937485Z       "id": "REQ-DOCS-3",
2026-06-15T09:27:04.9937722Z       "title": "Diátaxis structure; one canonical way to do X",
2026-06-15T09:27:04.9937833Z       "requiredStages": [
2026-06-15T09:27:04.9937941Z         "doc"
2026-06-15T09:27:04.9938041Z       ],
2026-06-15T09:27:04.9938146Z       "stages": {
2026-06-15T09:27:04.9938250Z         "doc": {
2026-06-15T09:27:04.9938358Z           "complete": true,
2026-06-15T09:27:04.9938473Z           "evidence": [
2026-06-15T09:27:04.9938574Z             {
2026-06-15T09:27:04.9938715Z               "path": "docs-site/src/index.md",
2026-06-15T09:27:04.9938826Z               "line": 42
2026-06-15T09:27:04.9939098Z             }
2026-06-15T09:27:04.9939197Z           ]
2026-06-15T09:27:04.9939302Z         },
2026-06-15T09:27:04.9939403Z         "impl": {
2026-06-15T09:27:04.9939522Z           "complete": false,
2026-06-15T09:27:04.9939626Z           "evidence": []
2026-06-15T09:27:04.9939727Z         },
2026-06-15T09:27:04.9939832Z         "int": {
2026-06-15T09:27:04.9939936Z           "complete": false,
2026-06-15T09:27:04.9940037Z           "evidence": []
2026-06-15T09:27:04.9940142Z         },
2026-06-15T09:27:04.9940247Z         "unit": {
2026-06-15T09:27:04.9940362Z           "complete": false,
2026-06-15T09:27:04.9940476Z           "evidence": []
2026-06-15T09:27:04.9940575Z         }
2026-06-15T09:27:04.9940686Z       }
2026-06-15T09:27:04.9940781Z     },
2026-06-15T09:27:04.9940879Z     {
2026-06-15T09:27:04.9940984Z       "id": "REQ-DOCS-4",
2026-06-15T09:27:04.9941220Z       "title": "Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)",
2026-06-15T09:27:04.9941349Z       "requiredStages": [
2026-06-15T09:27:04.9941445Z         "doc",
2026-06-15T09:27:04.9941554Z         "impl",
2026-06-15T09:27:04.9941645Z         "unit"
2026-06-15T09:27:04.9941750Z       ],
2026-06-15T09:27:04.9941854Z       "stages": {
2026-06-15T09:27:04.9941960Z         "doc": {
2026-06-15T09:27:04.9942069Z           "complete": true,
2026-06-15T09:27:04.9942178Z           "evidence": [
2026-06-15T09:27:04.9942279Z             {
2026-06-15T09:27:04.9942417Z               "path": "docs/DOCS-STRATEGY.md",
2026-06-15T09:27:04.9942522Z               "line": 35
2026-06-15T09:27:04.9942623Z             }
2026-06-15T09:27:04.9942722Z           ]
2026-06-15T09:27:04.9942822Z         },
2026-06-15T09:27:04.9942924Z         "impl": {
2026-06-15T09:27:04.9943042Z           "complete": true,
2026-06-15T09:27:04.9943147Z           "evidence": [
2026-06-15T09:27:04.9943248Z             {
2026-06-15T09:27:04.9943403Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:27:04.9943517Z               "line": 604
2026-06-15T09:27:04.9943618Z             },
2026-06-15T09:27:04.9943720Z             {
2026-06-15T09:27:04.9943863Z               "path": "crates/xtask/src/main.rs",
2026-06-15T09:27:04.9943969Z               "line": 15
2026-06-15T09:27:04.9944078Z             }
2026-06-15T09:27:04.9944173Z           ]
2026-06-15T09:27:04.9944283Z         },
2026-06-15T09:27:04.9944392Z         "int": {
2026-06-15T09:27:04.9944497Z           "complete": false,
2026-06-15T09:27:04.9944607Z           "evidence": []
2026-06-15T09:27:04.9944712Z         },
2026-06-15T09:27:04.9944817Z         "unit": {
2026-06-15T09:27:04.9944932Z           "complete": true,
2026-06-15T09:27:04.9945046Z           "evidence": [
2026-06-15T09:27:04.9945141Z             {
2026-06-15T09:27:04.9945294Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:27:04.9945418Z               "line": 1197
2026-06-15T09:27:04.9945519Z             }
2026-06-15T09:27:04.9945618Z           ]
2026-06-15T09:27:04.9945718Z         }
2026-06-15T09:27:04.9945819Z       }
2026-06-15T09:27:04.9945918Z     },
2026-06-15T09:27:04.9946023Z     {
2026-06-15T09:27:04.9946134Z       "id": "REQ-DOCS-5",
2026-06-15T09:27:04.9946356Z       "title": "Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked",
2026-06-15T09:27:04.9946471Z       "requiredStages": [
2026-06-15T09:27:04.9946685Z         "impl",
2026-06-15T09:27:04.9946790Z         "int"
2026-06-15T09:27:04.9946886Z       ],
2026-06-15T09:27:04.9946981Z       "stages": {
2026-06-15T09:27:04.9947081Z         "doc": {
2026-06-15T09:27:04.9947191Z           "complete": false,
2026-06-15T09:27:04.9947300Z           "evidence": []
2026-06-15T09:27:04.9947396Z         },
2026-06-15T09:27:04.9947501Z         "impl": {
2026-06-15T09:27:04.9947605Z           "complete": true,
2026-06-15T09:27:04.9947715Z           "evidence": [
2026-06-15T09:27:04.9947821Z             {
2026-06-15T09:27:04.9947963Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:27:04.9948173Z               "line": 605
2026-06-15T09:27:04.9948268Z             },
2026-06-15T09:27:04.9948364Z             {
2026-06-15T09:27:04.9948497Z               "path": "crates/xtask/src/main.rs",
2026-06-15T09:27:04.9948601Z               "line": 113
2026-06-15T09:27:04.9948706Z             }
2026-06-15T09:27:04.9948805Z           ]
2026-06-15T09:27:04.9948918Z         },
2026-06-15T09:27:04.9949166Z         "int": {
2026-06-15T09:27:04.9949290Z           "complete": true,
2026-06-15T09:27:04.9949391Z           "evidence": [
2026-06-15T09:27:04.9949500Z             {
2026-06-15T09:27:04.9949638Z               "path": ".github/workflows/ci.yml",
2026-06-15T09:27:04.9949739Z               "line": 107
2026-06-15T09:27:04.9949838Z             },
2026-06-15T09:27:04.9949939Z             {
2026-06-15T09:27:04.9950091Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:27:04.9950196Z               "line": 1234
2026-06-15T09:27:04.9950297Z             }
2026-06-15T09:27:04.9950401Z           ]
2026-06-15T09:27:04.9950506Z         },
2026-06-15T09:27:04.9950617Z         "unit": {
2026-06-15T09:27:04.9950725Z           "complete": false,
2026-06-15T09:27:04.9950840Z           "evidence": []
2026-06-15T09:27:04.9950941Z         }
2026-06-15T09:27:04.9951036Z       }
2026-06-15T09:27:04.9951131Z     },
2026-06-15T09:27:04.9951232Z     {
2026-06-15T09:27:04.9951337Z       "id": "REQ-DOCS-6",
2026-06-15T09:27:04.9951700Z       "title": "spt how-to <topic>: in-binary task-oriented agent instructions (anti-drift; quickstart prompts point agents at it)",
2026-06-15T09:27:04.9951823Z       "requiredStages": [
2026-06-15T09:27:04.9951923Z         "impl",
2026-06-15T09:27:04.9952025Z         "unit",
2026-06-15T09:27:04.9952123Z         "int"
2026-06-15T09:27:04.9952224Z       ],
2026-06-15T09:27:04.9952329Z       "stages": {
2026-06-15T09:27:04.9952424Z         "doc": {
2026-06-15T09:27:04.9952544Z           "complete": true,
2026-06-15T09:27:04.9952658Z           "evidence": [
2026-06-15T09:27:04.9952757Z             {
2026-06-15T09:27:04.9952931Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-15T09:27:04.9953035Z               "line": 4
2026-06-15T09:27:04.9953139Z             }
2026-06-15T09:27:04.9953236Z           ]
2026-06-15T09:27:04.9953339Z         },
2026-06-15T09:27:04.9953445Z         "impl": {
2026-06-15T09:27:04.9953560Z           "complete": true,
2026-06-15T09:27:04.9953673Z           "evidence": [
2026-06-15T09:27:04.9953774Z             {
2026-06-15T09:27:04.9953899Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:04.9954001Z               "line": 4697
2026-06-15T09:27:04.9954111Z             }
2026-06-15T09:27:04.9954211Z           ]
2026-06-15T09:27:04.9954314Z         },
2026-06-15T09:27:04.9954418Z         "int": {
2026-06-15T09:27:04.9954520Z           "complete": true,
2026-06-15T09:27:04.9954628Z           "evidence": [
2026-06-15T09:27:04.9954733Z             {
2026-06-15T09:27:04.9954891Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-15T09:27:04.9955005Z               "line": 39
2026-06-15T09:27:04.9955106Z             }
2026-06-15T09:27:04.9955210Z           ]
2026-06-15T09:27:04.9955310Z         },
2026-06-15T09:27:04.9955411Z         "unit": {
2026-06-15T09:27:04.9955529Z           "complete": true,
2026-06-15T09:27:04.9955639Z           "evidence": [
2026-06-15T09:27:04.9955854Z             {
2026-06-15T09:27:04.9955983Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:04.9956094Z               "line": 8982
2026-06-15T09:27:04.9956197Z             }
2026-06-15T09:27:04.9956298Z           ]
2026-06-15T09:27:04.9956399Z         }
2026-06-15T09:27:04.9956497Z       }
2026-06-15T09:27:04.9956598Z     },
2026-06-15T09:27:04.9956694Z     {
2026-06-15T09:27:04.9956812Z       "id": "REQ-ELEVATE-1",
2026-06-15T09:27:04.9960070Z       "title": "Cross-platform self-elevating re-launch for privilege-gated commands: a pure decision seam `decide_elevation_path(os, elevation, interactive_tty, has_display, has_pkexec, has_term_emulator) -> ElevatePath{AlreadyElevated, InlineSudo, UacWindow, Pkexec, TerminalEmulator, PrintHint}` selecting how to re-acquire privilege, and the per-OS impure launchers it dispatches — Windows UAC console (ShellExecuteW `runas` on the abs-exe + verbatim argv; the elevated child does the work, prints 'You can close this window', and pauses for a keypress; the original prints 'Elevated terminal launched…' and exits 0; NEVER pipes the child's stdout back across the privilege boundary), Linux desktop pkexec (preferred, native polkit GUI auth) else x-terminal-emulator -e sudo (fallback list x-terminal-emulator→gnome-terminal→konsole→xterm), the existing interactive-TTY inline sudo, and the headless/no-path floor that prints the absolute-path command. Reused by every gated command (not subnet-specific). Generalizes should_auto_elevate.",
2026-06-15T09:27:04.9960323Z       "requiredStages": [
2026-06-15T09:27:04.9960422Z         "doc",
2026-06-15T09:27:04.9960523Z         "impl",
2026-06-15T09:27:04.9960623Z         "unit"
2026-06-15T09:27:04.9960728Z       ],
2026-06-15T09:27:04.9960833Z       "stages": {
2026-06-15T09:27:04.9960938Z         "doc": {
2026-06-15T09:27:04.9961047Z           "complete": true,
2026-06-15T09:27:04.9961167Z           "evidence": [
2026-06-15T09:27:04.9961262Z             {
2026-06-15T09:27:04.9961386Z               "path": "CONTEXT.md",
2026-06-15T09:27:04.9961501Z               "line": 629
2026-06-15T09:27:04.9961605Z             }
2026-06-15T09:27:04.9961710Z           ]
2026-06-15T09:27:04.9961811Z         },
2026-06-15T09:27:04.9961911Z         "impl": {
2026-06-15T09:27:04.9962014Z           "complete": true,
2026-06-15T09:27:04.9962119Z           "evidence": [
2026-06-15T09:27:04.9962223Z             {
2026-06-15T09:27:04.9962350Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:04.9962455Z               "line": 3132
2026-06-15T09:27:04.9962556Z             },
2026-06-15T09:27:04.9962655Z             {
2026-06-15T09:27:04.9962780Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:04.9962904Z               "line": 3177
2026-06-15T09:27:04.9963012Z             },
2026-06-15T09:27:04.9963114Z             {
2026-06-15T09:27:04.9963238Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:04.9963341Z               "line": 3239
2026-06-15T09:27:04.9963438Z             },
2026-06-15T09:27:04.9963547Z             {
2026-06-15T09:27:04.9963690Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:27:04.9963796Z               "line": 92
2026-06-15T09:27:04.9963894Z             },
2026-06-15T09:27:04.9963995Z             {
2026-06-15T09:27:04.9964130Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:27:04.9964248Z               "line": 148
2026-06-15T09:27:04.9964344Z             }
2026-06-15T09:27:04.9964449Z           ]
2026-06-15T09:27:04.9964547Z         },
2026-06-15T09:27:04.9964647Z         "int": {
2026-06-15T09:27:04.9964767Z           "complete": false,
2026-06-15T09:27:04.9964874Z           "evidence": []
2026-06-15T09:27:04.9964978Z         },
2026-06-15T09:27:04.9965080Z         "unit": {
2026-06-15T09:27:04.9965198Z           "complete": true,
2026-06-15T09:27:04.9965312Z           "evidence": [
2026-06-15T09:27:04.9965414Z             {
2026-06-15T09:27:04.9965555Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:27:04.9965766Z               "line": 442
2026-06-15T09:27:04.9965870Z             },
2026-06-15T09:27:04.9965972Z             {
2026-06-15T09:27:04.9966113Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:27:04.9966228Z               "line": 460
2026-06-15T09:27:04.9966329Z             }
2026-06-15T09:27:04.9966428Z           ]
2026-06-15T09:27:04.9966533Z         }
2026-06-15T09:27:04.9966639Z       }
2026-06-15T09:27:04.9966738Z     },
2026-06-15T09:27:04.9966829Z     {
2026-06-15T09:27:04.9966949Z       "id": "REQ-EP-1",
2026-06-15T09:27:04.9967100Z       "title": "Day-one endpoint types; open type system",
2026-06-15T09:27:04.9967221Z       "requiredStages": [
2026-06-15T09:27:04.9967391Z         "impl",
2026-06-15T09:27:04.9967491Z         "unit"
2026-06-15T09:27:04.9967586Z       ],
2026-06-15T09:27:04.9967702Z       "stages": {
2026-06-15T09:27:04.9967805Z         "doc": {
2026-06-15T09:27:04.9967906Z           "complete": false,
2026-06-15T09:27:04.9968021Z           "evidence": []
2026-06-15T09:27:04.9968110Z         },
2026-06-15T09:27:04.9968221Z         "impl": {
2026-06-15T09:27:04.9968335Z           "complete": true,
2026-06-15T09:27:04.9968444Z           "evidence": [
2026-06-15T09:27:04.9968550Z             {
2026-06-15T09:27:04.9968697Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T09:27:04.9968811Z               "line": 77
2026-06-15T09:27:04.9968913Z             },
2026-06-15T09:27:04.9969093Z             {
2026-06-15T09:27:04.9969246Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T09:27:04.9969350Z               "line": 94
2026-06-15T09:27:04.9969480Z             }
2026-06-15T09:27:04.9969575Z           ]
2026-06-15T09:27:04.9969688Z         },
2026-06-15T09:27:04.9969793Z         "int": {
2026-06-15T09:27:04.9969902Z           "complete": false,
2026-06-15T09:27:04.9970005Z           "evidence": []
2026-06-15T09:27:04.9970110Z         },
2026-06-15T09:27:04.9970211Z         "unit": {
2026-06-15T09:27:04.9970320Z           "complete": true,
2026-06-15T09:27:04.9970439Z           "evidence": [
2026-06-15T09:27:04.9970540Z             {
2026-06-15T09:27:04.9970687Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T09:27:04.9970783Z               "line": 161
2026-06-15T09:27:04.9970878Z             },
2026-06-15T09:27:04.9970982Z             {
2026-06-15T09:27:04.9971127Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T09:27:04.9971245Z               "line": 178
2026-06-15T09:27:04.9971345Z             }
2026-06-15T09:27:04.9971451Z           ]
2026-06-15T09:27:04.9971550Z         }
2026-06-15T09:27:04.9971645Z       }
2026-06-15T09:27:04.9971752Z     },
2026-06-15T09:27:04.9971850Z     {
2026-06-15T09:27:04.9971965Z       "id": "REQ-EP-2",
2026-06-15T09:27:04.9972146Z       "title": "Agent endpoints vs Shells distinction in the type model",
2026-06-15T09:27:04.9972256Z       "requiredStages": [
2026-06-15T09:27:04.9972352Z         "impl",
2026-06-15T09:27:04.9972457Z         "unit"
2026-06-15T09:27:04.9972570Z       ],
2026-06-15T09:27:04.9972674Z       "stages": {
2026-06-15T09:27:04.9972778Z         "doc": {
2026-06-15T09:27:04.9972892Z           "complete": false,
2026-06-15T09:27:04.9973010Z           "evidence": []
2026-06-15T09:27:04.9973112Z         },
2026-06-15T09:27:04.9973215Z         "impl": {
2026-06-15T09:27:04.9973330Z           "complete": true,
2026-06-15T09:27:04.9973435Z           "evidence": [
2026-06-15T09:27:04.9973535Z             {
2026-06-15T09:27:04.9973679Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T09:27:04.9973793Z               "line": 114
2026-06-15T09:27:04.9973887Z             },
2026-06-15T09:27:04.9973994Z             {
2026-06-15T09:27:04.9974141Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T09:27:04.9974241Z               "line": 131
2026-06-15T09:27:04.9974346Z             },
2026-06-15T09:27:04.9974450Z             {
2026-06-15T09:27:04.9974599Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T09:27:04.9974803Z               "line": 138
2026-06-15T09:27:04.9974899Z             }
2026-06-15T09:27:04.9975004Z           ]
2026-06-15T09:27:04.9975108Z         },
2026-06-15T09:27:04.9975207Z         "int": {
2026-06-15T09:27:04.9975322Z           "complete": false,
2026-06-15T09:27:04.9975439Z           "evidence": []
2026-06-15T09:27:04.9975539Z         },
2026-06-15T09:27:04.9975640Z         "unit": {
2026-06-15T09:27:04.9975926Z           "complete": true,
2026-06-15T09:27:04.9976115Z           "evidence": [
2026-06-15T09:27:04.9981105Z             {
2026-06-15T09:27:04.9981309Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T09:27:04.9981433Z               "line": 190
2026-06-15T09:27:04.9981692Z             },
2026-06-15T09:27:04.9981806Z             {
2026-06-15T09:27:04.9981953Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T09:27:04.9982063Z               "line": 208
2026-06-15T09:27:04.9982162Z             },
2026-06-15T09:27:04.9982268Z             {
2026-06-15T09:27:04.9982415Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T09:27:04.9982520Z               "line": 221
2026-06-15T09:27:04.9982621Z             }
2026-06-15T09:27:04.9982730Z           ]
2026-06-15T09:27:04.9982830Z         }
2026-06-15T09:27:04.9982931Z       }
2026-06-15T09:27:04.9983026Z     },
2026-06-15T09:27:04.9983120Z     {
2026-06-15T09:27:04.9983230Z       "id": "REQ-EP-3",
2026-06-15T09:27:04.9983456Z       "title": "Messaging payloads carry typed operation commands + file blobs",
2026-06-15T09:27:04.9983570Z       "requiredStages": [
2026-06-15T09:27:04.9983672Z         "impl",
2026-06-15T09:27:04.9983771Z         "unit"
2026-06-15T09:27:04.9983881Z       ],
2026-06-15T09:27:04.9983981Z       "stages": {
2026-06-15T09:27:04.9984076Z         "doc": {
2026-06-15T09:27:04.9984196Z           "complete": false,
2026-06-15T09:27:04.9984305Z           "evidence": []
2026-06-15T09:27:04.9984409Z         },
2026-06-15T09:27:04.9984510Z         "impl": {
2026-06-15T09:27:04.9984629Z           "complete": true,
2026-06-15T09:27:04.9984729Z           "evidence": [
2026-06-15T09:27:04.9984830Z             {
2026-06-15T09:27:04.9984992Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T09:27:04.9985096Z               "line": 31
2026-06-15T09:27:04.9985198Z             },
2026-06-15T09:27:04.9985301Z             {
2026-06-15T09:27:04.9985450Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T09:27:04.9985550Z               "line": 49
2026-06-15T09:27:04.9985654Z             }
2026-06-15T09:27:04.9985758Z           ]
2026-06-15T09:27:04.9985858Z         },
2026-06-15T09:27:04.9985961Z         "int": {
2026-06-15T09:27:04.9986080Z           "complete": false,
2026-06-15T09:27:04.9986190Z           "evidence": []
2026-06-15T09:27:04.9986286Z         },
2026-06-15T09:27:04.9986385Z         "unit": {
2026-06-15T09:27:04.9986500Z           "complete": true,
2026-06-15T09:27:04.9986596Z           "evidence": [
2026-06-15T09:27:04.9986699Z             {
2026-06-15T09:27:04.9986853Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T09:27:04.9986962Z               "line": 156
2026-06-15T09:27:04.9987058Z             },
2026-06-15T09:27:04.9987154Z             {
2026-06-15T09:27:04.9987296Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T09:27:04.9987401Z               "line": 164
2026-06-15T09:27:04.9987501Z             },
2026-06-15T09:27:04.9987606Z             {
2026-06-15T09:27:04.9987746Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T09:27:04.9987854Z               "line": 177
2026-06-15T09:27:04.9987959Z             },
2026-06-15T09:27:04.9988056Z             {
2026-06-15T09:27:04.9988202Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T09:27:04.9988307Z               "line": 200
2026-06-15T09:27:04.9988404Z             },
2026-06-15T09:27:04.9988502Z             {
2026-06-15T09:27:04.9988654Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T09:27:04.9988760Z               "line": 216
2026-06-15T09:27:04.9989040Z             },
2026-06-15T09:27:04.9989146Z             {
2026-06-15T09:27:04.9989283Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T09:27:04.9989389Z               "line": 233
2026-06-15T09:27:04.9989485Z             }
2026-06-15T09:27:04.9989588Z           ]
2026-06-15T09:27:04.9989689Z         }
2026-06-15T09:27:04.9989793Z       }
2026-06-15T09:27:04.9989893Z     },
2026-06-15T09:27:04.9989985Z     {
2026-06-15T09:27:04.9990094Z       "id": "REQ-EP-4",
2026-06-15T09:27:04.9990266Z       "title": "PresenceChannel broker endpoint (seam day-one)",
2026-06-15T09:27:04.9990376Z       "requiredStages": [
2026-06-15T09:27:04.9990581Z         "impl",
2026-06-15T09:27:04.9990686Z         "unit"
2026-06-15T09:27:04.9990785Z       ],
2026-06-15T09:27:04.9990889Z       "stages": {
2026-06-15T09:27:04.9990989Z         "doc": {
2026-06-15T09:27:04.9991092Z           "complete": false,
2026-06-15T09:27:04.9991197Z           "evidence": []
2026-06-15T09:27:04.9991297Z         },
2026-06-15T09:27:04.9991402Z         "impl": {
2026-06-15T09:27:04.9991521Z           "complete": true,
2026-06-15T09:27:04.9991627Z           "evidence": [
2026-06-15T09:27:04.9991727Z             {
2026-06-15T09:27:04.9991859Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T09:27:04.9991970Z               "line": 717
2026-06-15T09:27:04.9992074Z             },
2026-06-15T09:27:04.9992174Z             {
2026-06-15T09:27:04.9992322Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T09:27:04.9992426Z               "line": 1048
2026-06-15T09:27:04.9992528Z             },
2026-06-15T09:27:04.9992619Z             {
2026-06-15T09:27:04.9992765Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:27:04.9992872Z               "line": 1359
2026-06-15T09:27:04.9992975Z             },
2026-06-15T09:27:04.9993080Z             {
2026-06-15T09:27:04.9993220Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T09:27:04.9993328Z               "line": 118
2026-06-15T09:27:04.9993429Z             },
2026-06-15T09:27:04.9993535Z             {
2026-06-15T09:27:04.9993680Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T09:27:04.9993785Z               "line": 609
2026-06-15T09:27:04.9993890Z             },
2026-06-15T09:27:04.9993973Z             {
2026-06-15T09:27:04.9994107Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T09:27:04.9994208Z               "line": 734
2026-06-15T09:27:04.9994307Z             },
2026-06-15T09:27:04.9994407Z             {
2026-06-15T09:27:04.9994555Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T09:27:04.9994660Z               "line": 217
2026-06-15T09:27:04.9994770Z             },
2026-06-15T09:27:04.9994865Z             {
2026-06-15T09:27:04.9995013Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T09:27:04.9995128Z               "line": 400
2026-06-15T09:27:04.9995218Z             },
2026-06-15T09:27:04.9995323Z             {
2026-06-15T09:27:04.9995467Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T09:27:04.9995570Z               "line": 1017
2026-06-15T09:27:04.9995671Z             }
2026-06-15T09:27:04.9995763Z           ]
2026-06-15T09:27:04.9995861Z         },
2026-06-15T09:27:04.9995967Z         "int": {
2026-06-15T09:27:04.9996083Z           "complete": false,
2026-06-15T09:27:04.9996195Z           "evidence": []
2026-06-15T09:27:04.9996289Z         },
2026-06-15T09:27:04.9996395Z         "unit": {
2026-06-15T09:27:04.9996507Z           "complete": true,
2026-06-15T09:27:04.9996620Z           "evidence": [
2026-06-15T09:27:04.9996717Z             {
2026-06-15T09:27:04.9996860Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T09:27:04.9996969Z               "line": 825
2026-06-15T09:27:04.9997070Z             },
2026-06-15T09:27:04.9997175Z             {
2026-06-15T09:27:04.9997337Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-15T09:27:04.9997437Z               "line": 76
2026-06-15T09:27:04.9997632Z             },
2026-06-15T09:27:04.9997732Z             {
2026-06-15T09:27:04.9997880Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-15T09:27:04.9997981Z               "line": 147
2026-06-15T09:27:04.9998081Z             }
2026-06-15T09:27:04.9998176Z           ]
2026-06-15T09:27:04.9998267Z         }
2026-06-15T09:27:04.9998372Z       }
2026-06-15T09:27:04.9998471Z     },
2026-06-15T09:27:04.9998577Z     {
2026-06-15T09:27:04.9998677Z       "id": "REQ-EP-5",
2026-06-15T09:27:04.9999453Z       "title": "Concrete shell instantiation model: spawn-mints-instance (vs relink/online), registered-on-node permission + broadcast-is-discovery, per-shell require_approval gate, max_instances_per_owner + over_cap, instance aliasing, discovery scope",
2026-06-15T09:27:04.9999677Z       "requiredStages": [
2026-06-15T09:27:04.9999777Z         "impl",
2026-06-15T09:27:04.9999887Z         "unit",
2026-06-15T09:27:04.9999982Z         "int"
2026-06-15T09:27:05.0000091Z       ],
2026-06-15T09:27:05.0000187Z       "stages": {
2026-06-15T09:27:05.0000292Z         "doc": {
2026-06-15T09:27:05.0000406Z           "complete": false,
2026-06-15T09:27:05.0000521Z           "evidence": []
2026-06-15T09:27:05.0000617Z         },
2026-06-15T09:27:05.0000717Z         "impl": {
2026-06-15T09:27:05.0000826Z           "complete": true,
2026-06-15T09:27:05.0000922Z           "evidence": [
2026-06-15T09:27:05.0001025Z             {
2026-06-15T09:27:05.0001185Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:05.0001288Z               "line": 367
2026-06-15T09:27:05.0001387Z             },
2026-06-15T09:27:05.0001488Z             {
2026-06-15T09:27:05.0001653Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T09:27:05.0001752Z               "line": 18
2026-06-15T09:27:05.0001857Z             },
2026-06-15T09:27:05.0001954Z             {
2026-06-15T09:27:05.0002100Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T09:27:05.0002206Z               "line": 63
2026-06-15T09:27:05.0002306Z             },
2026-06-15T09:27:05.0002410Z             {
2026-06-15T09:27:05.0002549Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T09:27:05.0002658Z               "line": 92
2026-06-15T09:27:05.0002759Z             },
2026-06-15T09:27:05.0002859Z             {
2026-06-15T09:27:05.0003010Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T09:27:05.0003117Z               "line": 167
2026-06-15T09:27:05.0003216Z             },
2026-06-15T09:27:05.0003316Z             {
2026-06-15T09:27:05.0003456Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T09:27:05.0003559Z               "line": 179
2026-06-15T09:27:05.0003669Z             },
2026-06-15T09:27:05.0003766Z             {
2026-06-15T09:27:05.0003907Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.0004018Z               "line": 114
2026-06-15T09:27:05.0004114Z             },
2026-06-15T09:27:05.0004226Z             {
2026-06-15T09:27:05.0004369Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T09:27:05.0004473Z               "line": 22
2026-06-15T09:27:05.0004576Z             },
2026-06-15T09:27:05.0004672Z             {
2026-06-15T09:27:05.0004811Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T09:27:05.0004919Z               "line": 145
2026-06-15T09:27:05.0005025Z             },
2026-06-15T09:27:05.0005125Z             {
2026-06-15T09:27:05.0005272Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T09:27:05.0005383Z               "line": 174
2026-06-15T09:27:05.0005479Z             },
2026-06-15T09:27:05.0005587Z             {
2026-06-15T09:27:05.0005731Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T09:27:05.0005835Z               "line": 196
2026-06-15T09:27:05.0005940Z             },
2026-06-15T09:27:05.0006037Z             {
2026-06-15T09:27:05.0006183Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T09:27:05.0006412Z               "line": 221
2026-06-15T09:27:05.0006508Z             },
2026-06-15T09:27:05.0006609Z             {
2026-06-15T09:27:05.0006755Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T09:27:05.0006859Z               "line": 247
2026-06-15T09:27:05.0006964Z             },
2026-06-15T09:27:05.0007063Z             {
2026-06-15T09:27:05.0007204Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T09:27:05.0007315Z               "line": 270
2026-06-15T09:27:05.0007410Z             },
2026-06-15T09:27:05.0007510Z             {
2026-06-15T09:27:05.0007659Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:27:05.0007839Z               "line": 100
2026-06-15T09:27:05.0007936Z             },
2026-06-15T09:27:05.0008036Z             {
2026-06-15T09:27:05.0008173Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0008279Z               "line": 5202
2026-06-15T09:27:05.0008374Z             },
2026-06-15T09:27:05.0008488Z             {
2026-06-15T09:27:05.0008612Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0008726Z               "line": 5336
2026-06-15T09:27:05.0008817Z             },
2026-06-15T09:27:05.0008923Z             {
2026-06-15T09:27:05.0009122Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0009233Z               "line": 5502
2026-06-15T09:27:05.0009336Z             },
2026-06-15T09:27:05.0009457Z             {
2026-06-15T09:27:05.0009580Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0009684Z               "line": 5884
2026-06-15T09:27:05.0009784Z             }
2026-06-15T09:27:05.0009885Z           ]
2026-06-15T09:27:05.0009984Z         },
2026-06-15T09:27:05.0010098Z         "int": {
2026-06-15T09:27:05.0010209Z           "complete": true,
2026-06-15T09:27:05.0010322Z           "evidence": [
2026-06-15T09:27:05.0010418Z             {
2026-06-15T09:27:05.0010562Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-15T09:27:05.0010671Z               "line": 16
2026-06-15T09:27:05.0010776Z             },
2026-06-15T09:27:05.0010876Z             {
2026-06-15T09:27:05.0011018Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-15T09:27:05.0011134Z               "line": 15
2026-06-15T09:27:05.0011234Z             }
2026-06-15T09:27:05.0011338Z           ]
2026-06-15T09:27:05.0011435Z         },
2026-06-15T09:27:05.0011543Z         "unit": {
2026-06-15T09:27:05.0011653Z           "complete": true,
2026-06-15T09:27:05.0011755Z           "evidence": [
2026-06-15T09:27:05.0011858Z             {
2026-06-15T09:27:05.0012005Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T09:27:05.0012119Z               "line": 246
2026-06-15T09:27:05.0012217Z             },
2026-06-15T09:27:05.0012326Z             {
2026-06-15T09:27:05.0012470Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T09:27:05.0012575Z               "line": 306
2026-06-15T09:27:05.0012674Z             },
2026-06-15T09:27:05.0012781Z             {
2026-06-15T09:27:05.0012922Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T09:27:05.0013033Z               "line": 363
2026-06-15T09:27:05.0013133Z             },
2026-06-15T09:27:05.0013237Z             {
2026-06-15T09:27:05.0013376Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T09:27:05.0013481Z               "line": 286
2026-06-15T09:27:05.0013585Z             },
2026-06-15T09:27:05.0013686Z             {
2026-06-15T09:27:05.0013838Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T09:27:05.0013934Z               "line": 338
2026-06-15T09:27:05.0014035Z             },
2026-06-15T09:27:05.0014138Z             {
2026-06-15T09:27:05.0014283Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:27:05.0014387Z               "line": 659
2026-06-15T09:27:05.0014487Z             },
2026-06-15T09:27:05.0014588Z             {
2026-06-15T09:27:05.0014712Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0014929Z               "line": 7037
2026-06-15T09:27:05.0015033Z             },
2026-06-15T09:27:05.0015136Z             {
2026-06-15T09:27:05.0015261Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0015366Z               "line": 7164
2026-06-15T09:27:05.0015470Z             },
2026-06-15T09:27:05.0015571Z             {
2026-06-15T09:27:05.0015690Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0015794Z               "line": 7753
2026-06-15T09:27:05.0015896Z             },
2026-06-15T09:27:05.0016000Z             {
2026-06-15T09:27:05.0016118Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0016324Z               "line": 7869
2026-06-15T09:27:05.0016424Z             }
2026-06-15T09:27:05.0016530Z           ]
2026-06-15T09:27:05.0016630Z         }
2026-06-15T09:27:05.0016739Z       }
2026-06-15T09:27:05.0016835Z     },
2026-06-15T09:27:05.0016936Z     {
2026-06-15T09:27:05.0017044Z       "id": "REQ-EP-6",
2026-06-15T09:27:05.0018552Z       "title": "Gateway type acceptance: a Gateway-typed perch binds (api bind --type, open type system — un-hardcode the live_agent default), advertises/addressable like any endpoint, owns shells (owner validation not agent-family-gated), subscribes to digests, and is the user-msg identity gate's user-backed origin (REQ-MSG-5); in-tree mock-gateway fixture (R-DOCS-2 pattern, no downstream adapter code). Cross-node WAN Gateway-origin (registry endpoint_type trust) tracked by REQ-MSG-6",
2026-06-15T09:27:05.0018676Z       "requiredStages": [
2026-06-15T09:27:05.0018777Z         "doc",
2026-06-15T09:27:05.0018881Z         "impl",
2026-06-15T09:27:05.0019096Z         "unit"
2026-06-15T09:27:05.0019205Z       ],
2026-06-15T09:27:05.0019305Z       "stages": {
2026-06-15T09:27:05.0019407Z         "doc": {
2026-06-15T09:27:05.0019520Z           "complete": true,
2026-06-15T09:27:05.0019625Z           "evidence": [
2026-06-15T09:27:05.0019726Z             {
2026-06-15T09:27:05.0019844Z               "path": "CONTEXT.md",
2026-06-15T09:27:05.0019944Z               "line": 208
2026-06-15T09:27:05.0020050Z             }
2026-06-15T09:27:05.0020155Z           ]
2026-06-15T09:27:05.0020254Z         },
2026-06-15T09:27:05.0020349Z         "impl": {
2026-06-15T09:27:05.0020459Z           "complete": true,
2026-06-15T09:27:05.0020563Z           "evidence": [
2026-06-15T09:27:05.0020668Z             {
2026-06-15T09:27:05.0020812Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:27:05.0020911Z               "line": 174
2026-06-15T09:27:05.0021017Z             }
2026-06-15T09:27:05.0021112Z           ]
2026-06-15T09:27:05.0021211Z         },
2026-06-15T09:27:05.0021322Z         "int": {
2026-06-15T09:27:05.0021436Z           "complete": true,
2026-06-15T09:27:05.0021545Z           "evidence": [
2026-06-15T09:27:05.0021641Z             {
2026-06-15T09:27:05.0021789Z               "path": "crates/spt/tests/gateway_e2e.rs",
2026-06-15T09:27:05.0021889Z               "line": 18
2026-06-15T09:27:05.0021995Z             }
2026-06-15T09:27:05.0022094Z           ]
2026-06-15T09:27:05.0022199Z         },
2026-06-15T09:27:05.0022295Z         "unit": {
2026-06-15T09:27:05.0022408Z           "complete": true,
2026-06-15T09:27:05.0022517Z           "evidence": [
2026-06-15T09:27:05.0022622Z             {
2026-06-15T09:27:05.0022773Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T09:27:05.0022877Z               "line": 528
2026-06-15T09:27:05.0022978Z             },
2026-06-15T09:27:05.0023082Z             {
2026-06-15T09:27:05.0023221Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:27:05.0023331Z               "line": 629
2026-06-15T09:27:05.0023431Z             }
2026-06-15T09:27:05.0023535Z           ]
2026-06-15T09:27:05.0023631Z         }
2026-06-15T09:27:05.0023722Z       }
2026-06-15T09:27:05.0023825Z     },
2026-06-15T09:27:05.0023923Z     {
2026-06-15T09:27:05.0024031Z       "id": "REQ-EP-7",
2026-06-15T09:27:05.0025739Z       "title": "Durable live-role.md: a per-agent broad-purpose statement in tracked/agents/<id>/ beside live-context.md (replicates with the mind on the same a-<id> branch); renders FIRST at start-transition context injection (role -> live-context -> project-context); SOLE writer `spt endpoint role --overwrite <file>` — mechanical no-automated-writer guarantee (echo-commune ingest / signoff / Psyche reconcile structurally exclude it). The user-backed-origin hard gate on the writer is a deferred later tightening (rides the user-msg identity plumbing)",
2026-06-15T09:27:05.0025964Z       "requiredStages": [
2026-06-15T09:27:05.0026078Z         "doc",
2026-06-15T09:27:05.0026174Z         "impl",
2026-06-15T09:27:05.0026378Z         "unit"
2026-06-15T09:27:05.0026484Z       ],
2026-06-15T09:27:05.0026579Z       "stages": {
2026-06-15T09:27:05.0026693Z         "doc": {
2026-06-15T09:27:05.0026794Z           "complete": true,
2026-06-15T09:27:05.0026908Z           "evidence": [
2026-06-15T09:27:05.0027008Z             {
2026-06-15T09:27:05.0027128Z               "path": "CONTEXT.md",
2026-06-15T09:27:05.0027246Z               "line": 432
2026-06-15T09:27:05.0027342Z             }
2026-06-15T09:27:05.0027443Z           ]
2026-06-15T09:27:05.0027547Z         },
2026-06-15T09:27:05.0027647Z         "impl": {
2026-06-15T09:27:05.0027753Z           "complete": true,
2026-06-15T09:27:05.0027876Z           "evidence": [
2026-06-15T09:27:05.0027980Z             {
2026-06-15T09:27:05.0028118Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T09:27:05.0028235Z               "line": 505
2026-06-15T09:27:05.0028330Z             },
2026-06-15T09:27:05.0028436Z             {
2026-06-15T09:27:05.0028573Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T09:27:05.0028693Z               "line": 87
2026-06-15T09:27:05.0028798Z             },
2026-06-15T09:27:05.0028897Z             {
2026-06-15T09:27:05.0029165Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:27:05.0029264Z               "line": 81
2026-06-15T09:27:05.0029371Z             },
2026-06-15T09:27:05.0029465Z             {
2026-06-15T09:27:05.0029613Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:27:05.0029719Z               "line": 166
2026-06-15T09:27:05.0029819Z             },
2026-06-15T09:27:05.0029928Z             {
2026-06-15T09:27:05.0030053Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0030171Z               "line": 1440
2026-06-15T09:27:05.0030267Z             }
2026-06-15T09:27:05.0030382Z           ]
2026-06-15T09:27:05.0030486Z         },
2026-06-15T09:27:05.0030587Z         "int": {
2026-06-15T09:27:05.0030701Z           "complete": false,
2026-06-15T09:27:05.0030814Z           "evidence": []
2026-06-15T09:27:05.0030919Z         },
2026-06-15T09:27:05.0031014Z         "unit": {
2026-06-15T09:27:05.0031137Z           "complete": true,
2026-06-15T09:27:05.0031252Z           "evidence": [
2026-06-15T09:27:05.0031353Z             {
2026-06-15T09:27:05.0031495Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T09:27:05.0031601Z               "line": 623
2026-06-15T09:27:05.0031711Z             },
2026-06-15T09:27:05.0031810Z             {
2026-06-15T09:27:05.0031950Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T09:27:05.0032049Z               "line": 212
2026-06-15T09:27:05.0032149Z             },
2026-06-15T09:27:05.0032255Z             {
2026-06-15T09:27:05.0032383Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T09:27:05.0032502Z               "line": 307
2026-06-15T09:27:05.0032603Z             },
2026-06-15T09:27:05.0032706Z             {
2026-06-15T09:27:05.0032836Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0032955Z               "line": 6224
2026-06-15T09:27:05.0033054Z             },
2026-06-15T09:27:05.0033158Z             {
2026-06-15T09:27:05.0033291Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0033395Z               "line": 6251
2026-06-15T09:27:05.0033499Z             }
2026-06-15T09:27:05.0033719Z           ]
2026-06-15T09:27:05.0033819Z         }
2026-06-15T09:27:05.0033920Z       }
2026-06-15T09:27:05.0034019Z     },
2026-06-15T09:27:05.0034115Z     {
2026-06-15T09:27:05.0034234Z       "id": "REQ-FRONT-1",
2026-06-15T09:27:05.0034449Z       "title": "Day-one launcher/manager frontend (list/launch/attach/init)",
2026-06-15T09:27:05.0034573Z       "requiredStages": [],
2026-06-15T09:27:05.0034663Z       "stages": {
2026-06-15T09:27:05.0034768Z         "doc": {
2026-06-15T09:27:05.0034882Z           "complete": false,
2026-06-15T09:27:05.0035002Z           "evidence": []
2026-06-15T09:27:05.0035098Z         },
2026-06-15T09:27:05.0035206Z         "impl": {
2026-06-15T09:27:05.0035442Z           "complete": false,
2026-06-15T09:27:05.0035554Z           "evidence": []
2026-06-15T09:27:05.0035655Z         },
2026-06-15T09:27:05.0035761Z         "int": {
2026-06-15T09:27:05.0035874Z           "complete": false,
2026-06-15T09:27:05.0035987Z           "evidence": []
2026-06-15T09:27:05.0036088Z         },
2026-06-15T09:27:05.0036205Z         "unit": {
2026-06-15T09:27:05.0036309Z           "complete": false,
2026-06-15T09:27:05.0036419Z           "evidence": []
2026-06-15T09:27:05.0036515Z         }
2026-06-15T09:27:05.0036614Z       }
2026-06-15T09:27:05.0036711Z     },
2026-06-15T09:27:05.0036811Z     {
2026-06-15T09:27:05.0036957Z       "id": "REQ-HAZARD-BRAIN-RESPAWN-PATH",
2026-06-15T09:27:05.0039563Z       "title": "The broker respawns the brain onto the APPLIED bytes, not the renamed old binary: the candidate-binary default is the canonical exe path captured ONCE at broker start, never a per-spawn std::env::current_exe() — on Linux current_exe (readlink /proc/self/exe) is inode-tracking and follows the `apply` rename (spt -> spt.old-N), so a resident broker would respawn the brain onto OLD bytes while recording `applied` (Windows GetModuleFileName is path-at-start, so Windows was green; ADR-0018 Q3 silently assumed path-string semantics). Backstop: promotion gates on bytes — a trial promotes only if brain.ready exe_hash == the staged artifact hash for this platform, else auto-rollback + loud notif (readiness != new-bytes was the false-success that recorded applied:8 over a v0.4.0 brain on kitsubito, 2026-06-11). KNOWN-HAZARDS 6.11.",
2026-06-15T09:27:05.0039706Z       "requiredStages": [
2026-06-15T09:27:05.0039815Z         "doc",
2026-06-15T09:27:05.0039916Z         "impl",
2026-06-15T09:27:05.0040025Z         "unit",
2026-06-15T09:27:05.0040130Z         "int"
2026-06-15T09:27:05.0040227Z       ],
2026-06-15T09:27:05.0040331Z       "stages": {
2026-06-15T09:27:05.0040430Z         "doc": {
2026-06-15T09:27:05.0040546Z           "complete": true,
2026-06-15T09:27:05.0040664Z           "evidence": [
2026-06-15T09:27:05.0040774Z             {
2026-06-15T09:27:05.0040909Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T09:27:05.0041012Z               "line": 326
2026-06-15T09:27:05.0041113Z             }
2026-06-15T09:27:05.0041214Z           ]
2026-06-15T09:27:05.0041317Z         },
2026-06-15T09:27:05.0041426Z         "impl": {
2026-06-15T09:27:05.0041546Z           "complete": true,
2026-06-15T09:27:05.0041651Z           "evidence": [
2026-06-15T09:27:05.0041755Z             {
2026-06-15T09:27:05.0041913Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:27:05.0042012Z               "line": 480
2026-06-15T09:27:05.0042108Z             },
2026-06-15T09:27:05.0042214Z             {
2026-06-15T09:27:05.0042360Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:27:05.0042471Z               "line": 485
2026-06-15T09:27:05.0042575Z             },
2026-06-15T09:27:05.0042675Z             {
2026-06-15T09:27:05.0042820Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:27:05.0042938Z               "line": 860
2026-06-15T09:27:05.0043043Z             },
2026-06-15T09:27:05.0043139Z             {
2026-06-15T09:27:05.0043291Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:27:05.0043391Z               "line": 901
2026-06-15T09:27:05.0043595Z             },
2026-06-15T09:27:05.0043694Z             {
2026-06-15T09:27:05.0043837Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:27:05.0043945Z               "line": 912
2026-06-15T09:27:05.0044041Z             },
2026-06-15T09:27:05.0044137Z             {
2026-06-15T09:27:05.0044288Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:27:05.0044408Z               "line": 358
2026-06-15T09:27:05.0044509Z             }
2026-06-15T09:27:05.0044603Z           ]
2026-06-15T09:27:05.0044704Z         },
2026-06-15T09:27:05.0044809Z         "int": {
2026-06-15T09:27:05.0044927Z           "complete": true,
2026-06-15T09:27:05.0045138Z           "evidence": [
2026-06-15T09:27:05.0045237Z             {
2026-06-15T09:27:05.0045405Z               "path": "crates/spt/tests/brain_respawn_rename.rs",
2026-06-15T09:27:05.0045514Z               "line": 30
2026-06-15T09:27:05.0045619Z             }
2026-06-15T09:27:05.0045720Z           ]
2026-06-15T09:27:05.0045824Z         },
2026-06-15T09:27:05.0045924Z         "unit": {
2026-06-15T09:27:05.0046044Z           "complete": true,
2026-06-15T09:27:05.0046143Z           "evidence": [
2026-06-15T09:27:05.0046244Z             {
2026-06-15T09:27:05.0046396Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:27:05.0046491Z               "line": 1453
2026-06-15T09:27:05.0046600Z             },
2026-06-15T09:27:05.0046700Z             {
2026-06-15T09:27:05.0046855Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:27:05.0046965Z               "line": 1478
2026-06-15T09:27:05.0047070Z             },
2026-06-15T09:27:05.0047174Z             {
2026-06-15T09:27:05.0047328Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:27:05.0047446Z               "line": 1495
2026-06-15T09:27:05.0047547Z             },
2026-06-15T09:27:05.0047657Z             {
2026-06-15T09:27:05.0047799Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:27:05.0047920Z               "line": 1538
2026-06-15T09:27:05.0048028Z             }
2026-06-15T09:27:05.0048124Z           ]
2026-06-15T09:27:05.0048235Z         }
2026-06-15T09:27:05.0048338Z       }
2026-06-15T09:27:05.0048434Z     },
2026-06-15T09:27:05.0048530Z     {
2026-06-15T09:27:05.0048686Z       "id": "REQ-HAZARD-BROKER-PROCESS-ISOLATION",
2026-06-15T09:27:05.0051488Z       "title": "Broker and brain are separate processes: the broker runs as its own long-lived per-machine process that survives every brain restart, so a routine (brain-only) self-update restarts the brain onto the swapped binary while every hosted endpoint (PTY child, live QUIC conn, listening socket) stays untouched at the PROCESS level. The in-process-thread broker (daemon.rs:165-170) is a regression that silently unrealizes REQ-UPD-3 — apply degrades to an in-process Brain::handoff no-op and new code does not run until an unrelated restart (KNOWN-HAZARDS 6.7). Evidence must prove process-level survival (SPIKE-01/03 productionized as int: PTY child + live QUIC survive a brain-PROCESS restart onto a swapped binary), re-pointing the regression-masked in-process int tags currently on REQ-DAEMON-2 / REQ-UPD-3 (ADR-0018).",
2026-06-15T09:27:05.0051625Z       "requiredStages": [
2026-06-15T09:27:05.0051726Z         "doc",
2026-06-15T09:27:05.0051826Z         "impl",
2026-06-15T09:27:05.0051924Z         "unit",
2026-06-15T09:27:05.0052029Z         "int"
2026-06-15T09:27:05.0052126Z       ],
2026-06-15T09:27:05.0052230Z       "stages": {
2026-06-15T09:27:05.0052330Z         "doc": {
2026-06-15T09:27:05.0052445Z           "complete": true,
2026-06-15T09:27:05.0052554Z           "evidence": [
2026-06-15T09:27:05.0052649Z             {
2026-06-15T09:27:05.0052788Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T09:27:05.0052897Z               "line": 295
2026-06-15T09:27:05.0053002Z             }
2026-06-15T09:27:05.0053103Z           ]
2026-06-15T09:27:05.0053203Z         },
2026-06-15T09:27:05.0053307Z         "impl": {
2026-06-15T09:27:05.0053536Z           "complete": true,
2026-06-15T09:27:05.0053652Z           "evidence": [
2026-06-15T09:27:05.0053752Z             {
2026-06-15T09:27:05.0053903Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T09:27:05.0054014Z               "line": 108
2026-06-15T09:27:05.0054117Z             },
2026-06-15T09:27:05.0054222Z             {
2026-06-15T09:27:05.0054365Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T09:27:05.0054477Z               "line": 794
2026-06-15T09:27:05.0054576Z             },
2026-06-15T09:27:05.0054678Z             {
2026-06-15T09:27:05.0054820Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T09:27:05.0055026Z               "line": 994
2026-06-15T09:27:05.0055134Z             },
2026-06-15T09:27:05.0055230Z             {
2026-06-15T09:27:05.0055378Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:27:05.0055492Z               "line": 23
2026-06-15T09:27:05.0055589Z             },
2026-06-15T09:27:05.0055698Z             {
2026-06-15T09:27:05.0055845Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:27:05.0055961Z               "line": 113
2026-06-15T09:27:05.0056060Z             },
2026-06-15T09:27:05.0056165Z             {
2026-06-15T09:27:05.0056308Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:27:05.0056417Z               "line": 158
2026-06-15T09:27:05.0056524Z             },
2026-06-15T09:27:05.0056623Z             {
2026-06-15T09:27:05.0056770Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:27:05.0056872Z               "line": 215
2026-06-15T09:27:05.0056975Z             },
2026-06-15T09:27:05.0057093Z             {
2026-06-15T09:27:05.0057232Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:27:05.0057344Z               "line": 247
2026-06-15T09:27:05.0057448Z             },
2026-06-15T09:27:05.0057545Z             {
2026-06-15T09:27:05.0057692Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:27:05.0057802Z               "line": 261
2026-06-15T09:27:05.0057898Z             },
2026-06-15T09:27:05.0058001Z             {
2026-06-15T09:27:05.0058141Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:27:05.0058241Z               "line": 306
2026-06-15T09:27:05.0058345Z             },
2026-06-15T09:27:05.0058451Z             {
2026-06-15T09:27:05.0058598Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:27:05.0058698Z               "line": 333
2026-06-15T09:27:05.0058800Z             },
2026-06-15T09:27:05.0058898Z             {
2026-06-15T09:27:05.0059138Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:27:05.0059260Z               "line": 345
2026-06-15T09:27:05.0059361Z             },
2026-06-15T09:27:05.0059458Z             {
2026-06-15T09:27:05.0059603Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:27:05.0059708Z               "line": 359
2026-06-15T09:27:05.0059812Z             },
2026-06-15T09:27:05.0059916Z             {
2026-06-15T09:27:05.0060054Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:27:05.0060155Z               "line": 386
2026-06-15T09:27:05.0060259Z             },
2026-06-15T09:27:05.0060363Z             {
2026-06-15T09:27:05.0060507Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:27:05.0060625Z               "line": 629
2026-06-15T09:27:05.0060718Z             },
2026-06-15T09:27:05.0060817Z             {
2026-06-15T09:27:05.0060959Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:27:05.0061061Z               "line": 958
2026-06-15T09:27:05.0061179Z             },
2026-06-15T09:27:05.0061279Z             {
2026-06-15T09:27:05.0061418Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:27:05.0061518Z               "line": 178
2026-06-15T09:27:05.0061628Z             },
2026-06-15T09:27:05.0061728Z             {
2026-06-15T09:27:05.0061866Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:27:05.0062085Z               "line": 590
2026-06-15T09:27:05.0062185Z             },
2026-06-15T09:27:05.0062286Z             {
2026-06-15T09:27:05.0062433Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:27:05.0062536Z               "line": 662
2026-06-15T09:27:05.0062642Z             },
2026-06-15T09:27:05.0062743Z             {
2026-06-15T09:27:05.0062890Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:27:05.0062991Z               "line": 674
2026-06-15T09:27:05.0063095Z             },
2026-06-15T09:27:05.0063194Z             {
2026-06-15T09:27:05.0063334Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:27:05.0063534Z               "line": 1084
2026-06-15T09:27:05.0063634Z             },
2026-06-15T09:27:05.0063739Z             {
2026-06-15T09:27:05.0063877Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:27:05.0063992Z               "line": 181
2026-06-15T09:27:05.0064101Z             },
2026-06-15T09:27:05.0064197Z             {
2026-06-15T09:27:05.0064344Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:27:05.0064444Z               "line": 223
2026-06-15T09:27:05.0067207Z             },
2026-06-15T09:27:05.0067330Z             {
2026-06-15T09:27:05.0067494Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:27:05.0067611Z               "line": 234
2026-06-15T09:27:05.0067716Z             },
2026-06-15T09:27:05.0067806Z             {
2026-06-15T09:27:05.0067951Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:27:05.0068052Z               "line": 260
2026-06-15T09:27:05.0068167Z             },
2026-06-15T09:27:05.0068266Z             {
2026-06-15T09:27:05.0068425Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T09:27:05.0068520Z               "line": 56
2026-06-15T09:27:05.0068624Z             },
2026-06-15T09:27:05.0068725Z             {
2026-06-15T09:27:05.0068867Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T09:27:05.0069078Z               "line": 188
2026-06-15T09:27:05.0069178Z             },
2026-06-15T09:27:05.0069282Z             {
2026-06-15T09:27:05.0069421Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-15T09:27:05.0069530Z               "line": 63
2026-06-15T09:27:05.0069631Z             },
2026-06-15T09:27:05.0069731Z             {
2026-06-15T09:27:05.0069878Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:27:05.0069984Z               "line": 258
2026-06-15T09:27:05.0070088Z             },
2026-06-15T09:27:05.0070192Z             {
2026-06-15T09:27:05.0070345Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:27:05.0070447Z               "line": 424
2026-06-15T09:27:05.0070546Z             },
2026-06-15T09:27:05.0070643Z             {
2026-06-15T09:27:05.0070767Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0070885Z               "line": 1745
2026-06-15T09:27:05.0070987Z             }
2026-06-15T09:27:05.0071091Z           ]
2026-06-15T09:27:05.0071190Z         },
2026-06-15T09:27:05.0071287Z         "int": {
2026-06-15T09:27:05.0071401Z           "complete": true,
2026-06-15T09:27:05.0071505Z           "evidence": [
2026-06-15T09:27:05.0071612Z             {
2026-06-15T09:27:05.0071744Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-15T09:27:05.0071858Z               "line": 57
2026-06-15T09:27:05.0071964Z             },
2026-06-15T09:27:05.0072063Z             {
2026-06-15T09:27:05.0072202Z               "path": "crates/spt/tests/n1_pairing.rs",
2026-06-15T09:27:05.0072307Z               "line": 41
2026-06-15T09:27:05.0072421Z             }
2026-06-15T09:27:05.0072522Z           ]
2026-06-15T09:27:05.0072626Z         },
2026-06-15T09:27:05.0072731Z         "unit": {
2026-06-15T09:27:05.0072851Z           "complete": true,
2026-06-15T09:27:05.0072960Z           "evidence": [
2026-06-15T09:27:05.0073055Z             {
2026-06-15T09:27:05.0073345Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T09:27:05.0073450Z               "line": 532
2026-06-15T09:27:05.0073541Z             },
2026-06-15T09:27:05.0073641Z             {
2026-06-15T09:27:05.0073789Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T09:27:05.0073894Z               "line": 755
2026-06-15T09:27:05.0073998Z             },
2026-06-15T09:27:05.0074104Z             {
2026-06-15T09:27:05.0074252Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:27:05.0074361Z               "line": 1027
2026-06-15T09:27:05.0074462Z             },
2026-06-15T09:27:05.0074566Z             {
2026-06-15T09:27:05.0074829Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:27:05.0074928Z               "line": 1061
2026-06-15T09:27:05.0075028Z             },
2026-06-15T09:27:05.0075130Z             {
2026-06-15T09:27:05.0075276Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:27:05.0075384Z               "line": 1103
2026-06-15T09:27:05.0075490Z             },
2026-06-15T09:27:05.0075583Z             {
2026-06-15T09:27:05.0075726Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:27:05.0075831Z               "line": 1175
2026-06-15T09:27:05.0075936Z             },
2026-06-15T09:27:05.0076035Z             {
2026-06-15T09:27:05.0076179Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:27:05.0076293Z               "line": 1188
2026-06-15T09:27:05.0076394Z             },
2026-06-15T09:27:05.0076494Z             {
2026-06-15T09:27:05.0076641Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:27:05.0076757Z               "line": 1211
2026-06-15T09:27:05.0076852Z             },
2026-06-15T09:27:05.0076951Z             {
2026-06-15T09:27:05.0077100Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:27:05.0077199Z               "line": 1237
2026-06-15T09:27:05.0077290Z             },
2026-06-15T09:27:05.0077386Z             {
2026-06-15T09:27:05.0077529Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:27:05.0077634Z               "line": 1251
2026-06-15T09:27:05.0077734Z             },
2026-06-15T09:27:05.0077828Z             {
2026-06-15T09:27:05.0077973Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:27:05.0078077Z               "line": 1275
2026-06-15T09:27:05.0078176Z             },
2026-06-15T09:27:05.0078276Z             {
2026-06-15T09:27:05.0078418Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:27:05.0078526Z               "line": 1407
2026-06-15T09:27:05.0078622Z             },
2026-06-15T09:27:05.0078742Z             {
2026-06-15T09:27:05.0078888Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:27:05.0079061Z               "line": 1583
2026-06-15T09:27:05.0079160Z             },
2026-06-15T09:27:05.0079257Z             {
2026-06-15T09:27:05.0079409Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:27:05.0079518Z               "line": 1638
2026-06-15T09:27:05.0079614Z             },
2026-06-15T09:27:05.0079718Z             {
2026-06-15T09:27:05.0079866Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:27:05.0079962Z               "line": 1684
2026-06-15T09:27:05.0080061Z             },
2026-06-15T09:27:05.0080162Z             {
2026-06-15T09:27:05.0080301Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:27:05.0080405Z               "line": 1729
2026-06-15T09:27:05.0080511Z             },
2026-06-15T09:27:05.0080611Z             {
2026-06-15T09:27:05.0080752Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:27:05.0080876Z               "line": 1773
2026-06-15T09:27:05.0080980Z             },
2026-06-15T09:27:05.0081078Z             {
2026-06-15T09:27:05.0081222Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:27:05.0081327Z               "line": 1815
2026-06-15T09:27:05.0081528Z             },
2026-06-15T09:27:05.0081628Z             {
2026-06-15T09:27:05.0081769Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:27:05.0081871Z               "line": 1418
2026-06-15T09:27:05.0081971Z             },
2026-06-15T09:27:05.0082070Z             {
2026-06-15T09:27:05.0082219Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T09:27:05.0082318Z               "line": 217
2026-06-15T09:27:05.0082418Z             },
2026-06-15T09:27:05.0082524Z             {
2026-06-15T09:27:05.0082661Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T09:27:05.0082763Z               "line": 233
2026-06-15T09:27:05.0082962Z             },
2026-06-15T09:27:05.0083063Z             {
2026-06-15T09:27:05.0083210Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T09:27:05.0083320Z               "line": 254
2026-06-15T09:27:05.0083421Z             },
2026-06-15T09:27:05.0083520Z             {
2026-06-15T09:27:05.0083666Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T09:27:05.0083782Z               "line": 265
2026-06-15T09:27:05.0083872Z             },
2026-06-15T09:27:05.0083976Z             {
2026-06-15T09:27:05.0084116Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T09:27:05.0084220Z               "line": 278
2026-06-15T09:27:05.0084324Z             },
2026-06-15T09:27:05.0084421Z             {
2026-06-15T09:27:05.0084563Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T09:27:05.0084669Z               "line": 289
2026-06-15T09:27:05.0084768Z             },
2026-06-15T09:27:05.0084864Z             {
2026-06-15T09:27:05.0085007Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T09:27:05.0085112Z               "line": 301
2026-06-15T09:27:05.0085212Z             },
2026-06-15T09:27:05.0085317Z             {
2026-06-15T09:27:05.0085455Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T09:27:05.0085565Z               "line": 312
2026-06-15T09:27:05.0085666Z             },
2026-06-15T09:27:05.0085769Z             {
2026-06-15T09:27:05.0085912Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T09:27:05.0086007Z               "line": 323
2026-06-15T09:27:05.0086115Z             },
2026-06-15T09:27:05.0086214Z             {
2026-06-15T09:27:05.0086358Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T09:27:05.0086467Z               "line": 332
2026-06-15T09:27:05.0086572Z             },
2026-06-15T09:27:05.0086678Z             {
2026-06-15T09:27:05.0086806Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T09:27:05.0086915Z               "line": 342
2026-06-15T09:27:05.0087021Z             },
2026-06-15T09:27:05.0087120Z             {
2026-06-15T09:27:05.0087260Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T09:27:05.0087364Z               "line": 358
2026-06-15T09:27:05.0087468Z             },
2026-06-15T09:27:05.0087569Z             {
2026-06-15T09:27:05.0087717Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:27:05.0087816Z               "line": 708
2026-06-15T09:27:05.0087923Z             },
2026-06-15T09:27:05.0088027Z             {
2026-06-15T09:27:05.0088165Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:27:05.0088280Z               "line": 744
2026-06-15T09:27:05.0088379Z             },
2026-06-15T09:27:05.0088480Z             {
2026-06-15T09:27:05.0088623Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:27:05.0088722Z               "line": 966
2026-06-15T09:27:05.0088826Z             },
2026-06-15T09:27:05.0088931Z             {
2026-06-15T09:27:05.0089158Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-15T09:27:05.0089259Z               "line": 143
2026-06-15T09:27:05.0089363Z             },
2026-06-15T09:27:05.0089458Z             {
2026-06-15T09:27:05.0089588Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-15T09:27:05.0089697Z               "line": 222
2026-06-15T09:27:05.0089888Z             },
2026-06-15T09:27:05.0089988Z             {
2026-06-15T09:27:05.0090131Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-15T09:27:05.0090250Z               "line": 291
2026-06-15T09:27:05.0090350Z             },
2026-06-15T09:27:05.0090446Z             {
2026-06-15T09:27:05.0090598Z               "path": "crates/spt/tests/brain_split.rs",
2026-06-15T09:27:05.0090698Z               "line": 17
2026-06-15T09:27:05.0090794Z             },
2026-06-15T09:27:05.0090894Z             {
2026-06-15T09:27:05.0091037Z               "path": "crates/spt/tests/brain_split.rs",
2026-06-15T09:27:05.0091138Z               "line": 104
2026-06-15T09:27:05.0091327Z             }
2026-06-15T09:27:05.0091431Z           ]
2026-06-15T09:27:05.0091531Z         }
2026-06-15T09:27:05.0091624Z       }
2026-06-15T09:27:05.0091725Z     },
2026-06-15T09:27:05.0091825Z     {
2026-06-15T09:27:05.0091967Z       "id": "REQ-HAZARD-CASCADE-WIPE-GUARD",
2026-06-15T09:27:05.0092178Z       "title": "No hard-delete of a parent hosting non-empty children (6.3)",
2026-06-15T09:27:05.0092296Z       "requiredStages": [
2026-06-15T09:27:05.0092398Z         "impl",
2026-06-15T09:27:05.0092502Z         "unit"
2026-06-15T09:27:05.0092601Z       ],
2026-06-15T09:27:05.0092712Z       "stages": {
2026-06-15T09:27:05.0092816Z         "doc": {
2026-06-15T09:27:05.0092931Z           "complete": false,
2026-06-15T09:27:05.0093047Z           "evidence": []
2026-06-15T09:27:05.0093150Z         },
2026-06-15T09:27:05.0093250Z         "impl": {
2026-06-15T09:27:05.0093356Z           "complete": true,
2026-06-15T09:27:05.0093455Z           "evidence": [
2026-06-15T09:27:05.0093550Z             {
2026-06-15T09:27:05.0093700Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:27:05.0093808Z               "line": 168
2026-06-15T09:27:05.0093909Z             },
2026-06-15T09:27:05.0094010Z             {
2026-06-15T09:27:05.0094136Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T09:27:05.0094250Z               "line": 18
2026-06-15T09:27:05.0094352Z             },
2026-06-15T09:27:05.0094451Z             {
2026-06-15T09:27:05.0094589Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T09:27:05.0094695Z               "line": 100
2026-06-15T09:27:05.0094794Z             }
2026-06-15T09:27:05.0094894Z           ]
2026-06-15T09:27:05.0094996Z         },
2026-06-15T09:27:05.0095100Z         "int": {
2026-06-15T09:27:05.0095214Z           "complete": false,
2026-06-15T09:27:05.0095324Z           "evidence": []
2026-06-15T09:27:05.0095419Z         },
2026-06-15T09:27:05.0095519Z         "unit": {
2026-06-15T09:27:05.0095630Z           "complete": true,
2026-06-15T09:27:05.0095744Z           "evidence": [
2026-06-15T09:27:05.0095853Z             {
2026-06-15T09:27:05.0095996Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:27:05.0096105Z               "line": 733
2026-06-15T09:27:05.0096202Z             },
2026-06-15T09:27:05.0096302Z             {
2026-06-15T09:27:05.0096434Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T09:27:05.0096548Z               "line": 161
2026-06-15T09:27:05.0096647Z             },
2026-06-15T09:27:05.0096746Z             {
2026-06-15T09:27:05.0096880Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T09:27:05.0096976Z               "line": 233
2026-06-15T09:27:05.0097080Z             }
2026-06-15T09:27:05.0097175Z           ]
2026-06-15T09:27:05.0097281Z         }
2026-06-15T09:27:05.0097380Z       }
2026-06-15T09:27:05.0097476Z     },
2026-06-15T09:27:05.0097576Z     {
2026-06-15T09:27:05.0097709Z       "id": "REQ-HAZARD-CHILD-CONSOLE-FLASH",
2026-06-15T09:27:05.0098178Z       "title": "Console-subsystem children of the console-less daemon spawn with CREATE_NO_WINDOW, or each spawn flashes a visible blank window on the user's desktop (5.8)",
2026-06-15T09:27:05.0098291Z       "requiredStages": [
2026-06-15T09:27:05.0098400Z         "impl",
2026-06-15T09:27:05.0098497Z         "unit"
2026-06-15T09:27:05.0098672Z       ],
2026-06-15T09:27:05.0098769Z       "stages": {
2026-06-15T09:27:05.0098868Z         "doc": {
2026-06-15T09:27:05.0099050Z           "complete": true,
2026-06-15T09:27:05.0099155Z           "evidence": [
2026-06-15T09:27:05.0099259Z             {
2026-06-15T09:27:05.0099382Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T09:27:05.0099482Z               "line": 220
2026-06-15T09:27:05.0099590Z             }
2026-06-15T09:27:05.0099689Z           ]
2026-06-15T09:27:05.0099780Z         },
2026-06-15T09:27:05.0099885Z         "impl": {
2026-06-15T09:27:05.0100004Z           "complete": true,
2026-06-15T09:27:05.0100119Z           "evidence": [
2026-06-15T09:27:05.0100318Z             {
2026-06-15T09:27:05.0100467Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T09:27:05.0100567Z               "line": 305
2026-06-15T09:27:05.0100667Z             },
2026-06-15T09:27:05.0100768Z             {
2026-06-15T09:27:05.0100915Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T09:27:05.0101021Z               "line": 257
2026-06-15T09:27:05.0101120Z             },
2026-06-15T09:27:05.0101225Z             {
2026-06-15T09:27:05.0101369Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T09:27:05.0101477Z               "line": 405
2026-06-15T09:27:05.0101582Z             },
2026-06-15T09:27:05.0101679Z             {
2026-06-15T09:27:05.0101821Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T09:27:05.0101915Z               "line": 77
2026-06-15T09:27:05.0102015Z             }
2026-06-15T09:27:05.0102119Z           ]
2026-06-15T09:27:05.0102213Z         },
2026-06-15T09:27:05.0102328Z         "int": {
2026-06-15T09:27:05.0102424Z           "complete": false,
2026-06-15T09:27:05.0102527Z           "evidence": []
2026-06-15T09:27:05.0102629Z         },
2026-06-15T09:27:05.0102728Z         "unit": {
2026-06-15T09:27:05.0102833Z           "complete": true,
2026-06-15T09:27:05.0102939Z           "evidence": [
2026-06-15T09:27:05.0103053Z             {
2026-06-15T09:27:05.0103190Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T09:27:05.0103292Z               "line": 478
2026-06-15T09:27:05.0103395Z             },
2026-06-15T09:27:05.0103491Z             {
2026-06-15T09:27:05.0103635Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T09:27:05.0103740Z               "line": 516
2026-06-15T09:27:05.0103839Z             },
2026-06-15T09:27:05.0103940Z             {
2026-06-15T09:27:05.0104078Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T09:27:05.0104178Z               "line": 166
2026-06-15T09:27:05.0104279Z             }
2026-06-15T09:27:05.0104382Z           ]
2026-06-15T09:27:05.0104484Z         }
2026-06-15T09:27:05.0104589Z       }
2026-06-15T09:27:05.0104688Z     },
2026-06-15T09:27:05.0104792Z     {
2026-06-15T09:27:05.0104931Z       "id": "REQ-HAZARD-CONFLICT-BOTH-PRESERVED",
2026-06-15T09:27:05.0105532Z       "title": "A surfaced concurrent context pair is durably preserved (both versions, tracked artifacts) until a strictly dominating write clears it; no reconcile failure path discards an unmerged version (6.6, ADR-0013)",
2026-06-15T09:27:05.0105656Z       "requiredStages": [
2026-06-15T09:27:05.0105765Z         "impl",
2026-06-15T09:27:05.0105861Z         "unit"
2026-06-15T09:27:05.0105965Z       ],
2026-06-15T09:27:05.0106065Z       "stages": {
2026-06-15T09:27:05.0106166Z         "doc": {
2026-06-15T09:27:05.0106279Z           "complete": false,
2026-06-15T09:27:05.0106384Z           "evidence": []
2026-06-15T09:27:05.0106486Z         },
2026-06-15T09:27:05.0106584Z         "impl": {
2026-06-15T09:27:05.0106704Z           "complete": true,
2026-06-15T09:27:05.0106810Z           "evidence": [
2026-06-15T09:27:05.0106913Z             {
2026-06-15T09:27:05.0107065Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-15T09:27:05.0107170Z               "line": 22
2026-06-15T09:27:05.0107273Z             },
2026-06-15T09:27:05.0107483Z             {
2026-06-15T09:27:05.0107630Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T09:27:05.0107745Z               "line": 487
2026-06-15T09:27:05.0107845Z             },
2026-06-15T09:27:05.0107945Z             {
2026-06-15T09:27:05.0108080Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-15T09:27:05.0108184Z               "line": 17
2026-06-15T09:27:05.0108283Z             },
2026-06-15T09:27:05.0108385Z             {
2026-06-15T09:27:05.0108527Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-15T09:27:05.0108632Z               "line": 147
2026-06-15T09:27:05.0108728Z             },
2026-06-15T09:27:05.0108903Z             {
2026-06-15T09:27:05.0109147Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:27:05.0109266Z               "line": 226
2026-06-15T09:27:05.0109363Z             },
2026-06-15T09:27:05.0109466Z             {
2026-06-15T09:27:05.0109610Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:27:05.0109720Z               "line": 251
2026-06-15T09:27:05.0109819Z             },
2026-06-15T09:27:05.0109913Z             {
2026-06-15T09:27:05.0110061Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:27:05.0110164Z               "line": 277
2026-06-15T09:27:05.0110264Z             },
2026-06-15T09:27:05.0110365Z             {
2026-06-15T09:27:05.0110507Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T09:27:05.0110622Z               "line": 124
2026-06-15T09:27:05.0110727Z             },
2026-06-15T09:27:05.0110822Z             {
2026-06-15T09:27:05.0110961Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T09:27:05.0111075Z               "line": 224
2026-06-15T09:27:05.0111174Z             }
2026-06-15T09:27:05.0111276Z           ]
2026-06-15T09:27:05.0111380Z         },
2026-06-15T09:27:05.0111480Z         "int": {
2026-06-15T09:27:05.0111591Z           "complete": false,
2026-06-15T09:27:05.0111694Z           "evidence": []
2026-06-15T09:27:05.0111804Z         },
2026-06-15T09:27:05.0111906Z         "unit": {
2026-06-15T09:27:05.0112023Z           "complete": true,
2026-06-15T09:27:05.0112138Z           "evidence": [
2026-06-15T09:27:05.0112240Z             {
2026-06-15T09:27:05.0112390Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-15T09:27:05.0112489Z               "line": 63
2026-06-15T09:27:05.0112589Z             },
2026-06-15T09:27:05.0112688Z             {
2026-06-15T09:27:05.0112835Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-15T09:27:05.0112946Z               "line": 73
2026-06-15T09:27:05.0113050Z             },
2026-06-15T09:27:05.0113150Z             {
2026-06-15T09:27:05.0113294Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-15T09:27:05.0113398Z               "line": 85
2026-06-15T09:27:05.0113499Z             },
2026-06-15T09:27:05.0113604Z             {
2026-06-15T09:27:05.0113745Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-15T09:27:05.0113856Z               "line": 346
2026-06-15T09:27:05.0113961Z             },
2026-06-15T09:27:05.0114060Z             {
2026-06-15T09:27:05.0114205Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-15T09:27:05.0114309Z               "line": 281
2026-06-15T09:27:05.0114409Z             },
2026-06-15T09:27:05.0114510Z             {
2026-06-15T09:27:05.0114653Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-15T09:27:05.0114763Z               "line": 322
2026-06-15T09:27:05.0114863Z             },
2026-06-15T09:27:05.0114967Z             {
2026-06-15T09:27:05.0115112Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-15T09:27:05.0115229Z               "line": 360
2026-06-15T09:27:05.0115328Z             },
2026-06-15T09:27:05.0115429Z             {
2026-06-15T09:27:05.0115581Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:27:05.0115676Z               "line": 688
2026-06-15T09:27:05.0115782Z             },
2026-06-15T09:27:05.0115981Z             {
2026-06-15T09:27:05.0116121Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T09:27:05.0116235Z               "line": 397
2026-06-15T09:27:05.0116334Z             },
2026-06-15T09:27:05.0116440Z             {
2026-06-15T09:27:05.0116568Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T09:27:05.0116673Z               "line": 440
2026-06-15T09:27:05.0116769Z             }
2026-06-15T09:27:05.0116869Z           ]
2026-06-15T09:27:05.0116964Z         }
2026-06-15T09:27:05.0117065Z       }
2026-06-15T09:27:05.0117163Z     },
2026-06-15T09:27:05.0117259Z     {
2026-06-15T09:27:05.0117380Z       "id": "REQ-HAZARD-CONPTY-DSR",
2026-06-15T09:27:05.0117731Z       "title": "ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)",
2026-06-15T09:27:05.0117838Z       "requiredStages": [
2026-06-15T09:27:05.0117932Z         "impl",
2026-06-15T09:27:05.0118034Z         "unit"
2026-06-15T09:27:05.0118138Z       ],
2026-06-15T09:27:05.0118247Z       "stages": {
2026-06-15T09:27:05.0118354Z         "doc": {
2026-06-15T09:27:05.0118458Z           "complete": false,
2026-06-15T09:27:05.0118562Z           "evidence": []
2026-06-15T09:27:05.0118664Z         },
2026-06-15T09:27:05.0118768Z         "impl": {
2026-06-15T09:27:05.0118882Z           "complete": true,
2026-06-15T09:27:05.0119068Z           "evidence": [
2026-06-15T09:27:05.0119172Z             {
2026-06-15T09:27:05.0119312Z               "path": "crates/spt-term/src/reader.rs",
2026-06-15T09:27:05.0119417Z               "line": 169
2026-06-15T09:27:05.0119521Z             }
2026-06-15T09:27:05.0119622Z           ]
2026-06-15T09:27:05.0119725Z         },
2026-06-15T09:27:05.0119821Z         "int": {
2026-06-15T09:27:05.0119937Z           "complete": true,
2026-06-15T09:27:05.0120035Z           "evidence": [
2026-06-15T09:27:05.0120136Z             {
2026-06-15T09:27:05.0120276Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-15T09:27:05.0120379Z               "line": 44
2026-06-15T09:27:05.0120482Z             },
2026-06-15T09:27:05.0120579Z             {
2026-06-15T09:27:05.0120705Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-15T09:27:05.0120804Z               "line": 66
2026-06-15T09:27:05.0120901Z             }
2026-06-15T09:27:05.0121005Z           ]
2026-06-15T09:27:05.0121100Z         },
2026-06-15T09:27:05.0121197Z         "unit": {
2026-06-15T09:27:05.0121307Z           "complete": true,
2026-06-15T09:27:05.0121415Z           "evidence": [
2026-06-15T09:27:05.0121512Z             {
2026-06-15T09:27:05.0121654Z               "path": "crates/spt-term/src/reader.rs",
2026-06-15T09:27:05.0121768Z               "line": 186
2026-06-15T09:27:05.0121869Z             },
2026-06-15T09:27:05.0121964Z             {
2026-06-15T09:27:05.0122102Z               "path": "crates/spt-term/src/reader.rs",
2026-06-15T09:27:05.0122203Z               "line": 238
2026-06-15T09:27:05.0122307Z             },
2026-06-15T09:27:05.0122407Z             {
2026-06-15T09:27:05.0122546Z               "path": "crates/spt-term/src/reader.rs",
2026-06-15T09:27:05.0122645Z               "line": 266
2026-06-15T09:27:05.0122752Z             }
2026-06-15T09:27:05.0122851Z           ]
2026-06-15T09:27:05.0122955Z         }
2026-06-15T09:27:05.0123059Z       }
2026-06-15T09:27:05.0123159Z     },
2026-06-15T09:27:05.0123253Z     {
2026-06-15T09:27:05.0123400Z       "id": "REQ-HAZARD-DAEMON-HOSTED-LIVENESS",
2026-06-15T09:27:05.0123863Z       "title": "Daemon-hosted perches (Psyche, spt-hosted Self) derive liveness from the daemon endpoint table + info.json status, never is_process_alive(info.pid) (2.5)",
2026-06-15T09:27:05.0123977Z       "requiredStages": [
2026-06-15T09:27:05.0124088Z         "impl",
2026-06-15T09:27:05.0124188Z         "unit",
2026-06-15T09:27:05.0124287Z         "int"
2026-06-15T09:27:05.0124384Z       ],
2026-06-15T09:27:05.0124488Z       "stages": {
2026-06-15T09:27:05.0124592Z         "doc": {
2026-06-15T09:27:05.0124703Z           "complete": false,
2026-06-15T09:27:05.0124917Z           "evidence": []
2026-06-15T09:27:05.0125018Z         },
2026-06-15T09:27:05.0125117Z         "impl": {
2026-06-15T09:27:05.0125236Z           "complete": true,
2026-06-15T09:27:05.0125338Z           "evidence": [
2026-06-15T09:27:05.0125441Z             {
2026-06-15T09:27:05.0125589Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:27:05.0125704Z               "line": 152
2026-06-15T09:27:05.0125798Z             },
2026-06-15T09:27:05.0125897Z             {
2026-06-15T09:27:05.0126052Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:27:05.0126151Z               "line": 176
2026-06-15T09:27:05.0126466Z             },
2026-06-15T09:27:05.0126560Z             {
2026-06-15T09:27:05.0126700Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T09:27:05.0126809Z               "line": 79
2026-06-15T09:27:05.0126909Z             },
2026-06-15T09:27:05.0127009Z             {
2026-06-15T09:27:05.0127142Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T09:27:05.0127248Z               "line": 52
2026-06-15T09:27:05.0127353Z             },
2026-06-15T09:27:05.0127457Z             {
2026-06-15T09:27:05.0127597Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T09:27:05.0127701Z               "line": 164
2026-06-15T09:27:05.0127810Z             },
2026-06-15T09:27:05.0127907Z             {
2026-06-15T09:27:05.0128048Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T09:27:05.0128148Z               "line": 27
2026-06-15T09:27:05.0128247Z             },
2026-06-15T09:27:05.0128347Z             {
2026-06-15T09:27:05.0128488Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T09:27:05.0128604Z               "line": 79
2026-06-15T09:27:05.0128704Z             },
2026-06-15T09:27:05.0128798Z             {
2026-06-15T09:27:05.0128933Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T09:27:05.0129103Z               "line": 102
2026-06-15T09:27:05.0129205Z             },
2026-06-15T09:27:05.0129309Z             {
2026-06-15T09:27:05.0129452Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T09:27:05.0129553Z               "line": 116
2026-06-15T09:27:05.0129648Z             }
2026-06-15T09:27:05.0129747Z           ]
2026-06-15T09:27:05.0129843Z         },
2026-06-15T09:27:05.0129947Z         "int": {
2026-06-15T09:27:05.0130052Z           "complete": true,
2026-06-15T09:27:05.0130158Z           "evidence": [
2026-06-15T09:27:05.0130248Z             {
2026-06-15T09:27:05.0130401Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-15T09:27:05.0130511Z               "line": 38
2026-06-15T09:27:05.0130614Z             }
2026-06-15T09:27:05.0130716Z           ]
2026-06-15T09:27:05.0130807Z         },
2026-06-15T09:27:05.0130925Z         "unit": {
2026-06-15T09:27:05.0131038Z           "complete": true,
2026-06-15T09:27:05.0131143Z           "evidence": [
2026-06-15T09:27:05.0131246Z             {
2026-06-15T09:27:05.0131384Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:27:05.0131490Z               "line": 628
2026-06-15T09:27:05.0131594Z             },
2026-06-15T09:27:05.0131698Z             {
2026-06-15T09:27:05.0131837Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T09:27:05.0131956Z               "line": 378
2026-06-15T09:27:05.0132052Z             },
2026-06-15T09:27:05.0132152Z             {
2026-06-15T09:27:05.0132290Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T09:27:05.0132391Z               "line": 124
2026-06-15T09:27:05.0132495Z             },
2026-06-15T09:27:05.0132595Z             {
2026-06-15T09:27:05.0132740Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T09:27:05.0132857Z               "line": 143
2026-06-15T09:27:05.0132953Z             },
2026-06-15T09:27:05.0133054Z             {
2026-06-15T09:27:05.0133196Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T09:27:05.0133312Z               "line": 160
2026-06-15T09:27:05.0133501Z             },
2026-06-15T09:27:05.0133605Z             {
2026-06-15T09:27:05.0133752Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T09:27:05.0133856Z               "line": 187
2026-06-15T09:27:05.0133956Z             },
2026-06-15T09:27:05.0134052Z             {
2026-06-15T09:27:05.0134189Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T09:27:05.0134290Z               "line": 206
2026-06-15T09:27:05.0134395Z             },
2026-06-15T09:27:05.0134494Z             {
2026-06-15T09:27:05.0134634Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T09:27:05.0134733Z               "line": 229
2026-06-15T09:27:05.0134934Z             }
2026-06-15T09:27:05.0135038Z           ]
2026-06-15T09:27:05.0135138Z         }
2026-06-15T09:27:05.0135234Z       }
2026-06-15T09:27:05.0135334Z     },
2026-06-15T09:27:05.0135424Z     {
2026-06-15T09:27:05.0135573Z       "id": "REQ-HAZARD-DAEMON-SCHED-NONBLOCKING",
2026-06-15T09:27:05.0136256Z       "title": "Per-agent pulse/psyche/echo-commune scheduling must not serialize across agents: each agent's bounded LLM call (echo-commune summarizer, Psyche turn) runs off the shared scheduler so one slow/hung call cannot stall another agent's tick (7.4)",
2026-06-15T09:27:05.0136377Z       "requiredStages": [
2026-06-15T09:27:05.0136481Z         "impl",
2026-06-15T09:27:05.0136582Z         "unit"
2026-06-15T09:27:05.0136678Z       ],
2026-06-15T09:27:05.0136777Z       "stages": {
2026-06-15T09:27:05.0136883Z         "doc": {
2026-06-15T09:27:05.0136998Z           "complete": false,
2026-06-15T09:27:05.0137111Z           "evidence": []
2026-06-15T09:27:05.0137208Z         },
2026-06-15T09:27:05.0137322Z         "impl": {
2026-06-15T09:27:05.0137435Z           "complete": true,
2026-06-15T09:27:05.0137536Z           "evidence": [
2026-06-15T09:27:05.0137636Z             {
2026-06-15T09:27:05.0137774Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:27:05.0137889Z               "line": 621
2026-06-15T09:27:05.0137994Z             },
2026-06-15T09:27:05.0138094Z             {
2026-06-15T09:27:05.0138242Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:27:05.0138346Z               "line": 834
2026-06-15T09:27:05.0138447Z             }
2026-06-15T09:27:05.0138547Z           ]
2026-06-15T09:27:05.0138646Z         },
2026-06-15T09:27:05.0138755Z         "int": {
2026-06-15T09:27:05.0138869Z           "complete": false,
2026-06-15T09:27:05.0139053Z           "evidence": []
2026-06-15T09:27:05.0139149Z         },
2026-06-15T09:27:05.0139254Z         "unit": {
2026-06-15T09:27:05.0139373Z           "complete": true,
2026-06-15T09:27:05.0139682Z           "evidence": [
2026-06-15T09:27:05.0139902Z             {
2026-06-15T09:27:05.0140160Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-15T09:27:05.0140461Z               "line": 161
2026-06-15T09:27:05.0140695Z             }
2026-06-15T09:27:05.0140895Z           ]
2026-06-15T09:27:05.0141095Z         }
2026-06-15T09:27:05.0141286Z       }
2026-06-15T09:27:05.0141480Z     },
2026-06-15T09:27:05.0141670Z     {
2026-06-15T09:27:05.0141896Z       "id": "REQ-HAZARD-DEFERRED-DRAIN",
2026-06-15T09:27:05.0142273Z       "title": "Deferred spool rows excluded from the event-stream drain (1.4)",
2026-06-15T09:27:05.0142627Z       "requiredStages": [
2026-06-15T09:27:05.0142859Z         "impl",
2026-06-15T09:27:05.0143069Z         "unit"
2026-06-15T09:27:05.0143276Z       ],
2026-06-15T09:27:05.0147281Z       "stages": {
2026-06-15T09:27:05.0147690Z         "doc": {
2026-06-15T09:27:05.0147929Z           "complete": false,
2026-06-15T09:27:05.0148182Z           "evidence": []
2026-06-15T09:27:05.0148421Z         },
2026-06-15T09:27:05.0148620Z         "impl": {
2026-06-15T09:27:05.0148830Z           "complete": true,
2026-06-15T09:27:05.0149168Z           "evidence": [
2026-06-15T09:27:05.0149392Z             {
2026-06-15T09:27:05.0149642Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T09:27:05.0150096Z               "line": 40
2026-06-15T09:27:05.0150306Z             },
2026-06-15T09:27:05.0150510Z             {
2026-06-15T09:27:05.0150744Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T09:27:05.0151025Z               "line": 103
2026-06-15T09:27:05.0151250Z             },
2026-06-15T09:27:05.0151450Z             {
2026-06-15T09:27:05.0151688Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T09:27:05.0151966Z               "line": 218
2026-06-15T09:27:05.0152202Z             },
2026-06-15T09:27:05.0152414Z             {
2026-06-15T09:27:05.0152648Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T09:27:05.0152925Z               "line": 323
2026-06-15T09:27:05.0153249Z             }
2026-06-15T09:27:05.0153449Z           ]
2026-06-15T09:27:05.0153639Z         },
2026-06-15T09:27:05.0153836Z         "int": {
2026-06-15T09:27:05.0154040Z           "complete": false,
2026-06-15T09:27:05.0154278Z           "evidence": []
2026-06-15T09:27:05.0154489Z         },
2026-06-15T09:27:05.0154697Z         "unit": {
2026-06-15T09:27:05.0154901Z           "complete": true,
2026-06-15T09:27:05.0155138Z           "evidence": [
2026-06-15T09:27:05.0155357Z             {
2026-06-15T09:27:05.0155601Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T09:27:05.0155887Z               "line": 361
2026-06-15T09:27:05.0156112Z             },
2026-06-15T09:27:05.0156316Z             {
2026-06-15T09:27:05.0156550Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T09:27:05.0156821Z               "line": 433
2026-06-15T09:27:05.0157032Z             },
2026-06-15T09:27:05.0157222Z             {
2026-06-15T09:27:05.0157451Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T09:27:05.0157736Z               "line": 496
2026-06-15T09:27:05.0157955Z             },
2026-06-15T09:27:05.0158155Z             {
2026-06-15T09:27:05.0158389Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T09:27:05.0158662Z               "line": 517
2026-06-15T09:27:05.0158880Z             }
2026-06-15T09:27:05.0159181Z           ]
2026-06-15T09:27:05.0159371Z         }
2026-06-15T09:27:05.0159558Z       }
2026-06-15T09:27:05.0159738Z     },
2026-06-15T09:27:05.0159938Z     {
2026-06-15T09:27:05.0160168Z       "id": "REQ-HAZARD-DEFERRED-SURVIVE-DRAIN",
2026-06-15T09:27:05.0160498Z       "title": "Deferred rows survive poll drain (4.4)",
2026-06-15T09:27:05.0160798Z       "requiredStages": [
2026-06-15T09:27:05.0161046Z         "impl",
2026-06-15T09:27:05.0161261Z         "unit"
2026-06-15T09:27:05.0161461Z       ],
2026-06-15T09:27:05.0161647Z       "stages": {
2026-06-15T09:27:05.0161849Z         "doc": {
2026-06-15T09:27:05.0162086Z           "complete": false,
2026-06-15T09:27:05.0162339Z           "evidence": []
2026-06-15T09:27:05.0162577Z         },
2026-06-15T09:27:05.0162771Z         "impl": {
2026-06-15T09:27:05.0162988Z           "complete": true,
2026-06-15T09:27:05.0163223Z           "evidence": [
2026-06-15T09:27:05.0163428Z             {
2026-06-15T09:27:05.0163660Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T09:27:05.0163932Z               "line": 116
2026-06-15T09:27:05.0164143Z             },
2026-06-15T09:27:05.0164338Z             {
2026-06-15T09:27:05.0164572Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T09:27:05.0164843Z               "line": 211
2026-06-15T09:27:05.0165059Z             }
2026-06-15T09:27:05.0165248Z           ]
2026-06-15T09:27:05.0165424Z         },
2026-06-15T09:27:05.0165617Z         "int": {
2026-06-15T09:27:05.0165818Z           "complete": false,
2026-06-15T09:27:05.0166057Z           "evidence": []
2026-06-15T09:27:05.0166270Z         },
2026-06-15T09:27:05.0166471Z         "unit": {
2026-06-15T09:27:05.0166681Z           "complete": true,
2026-06-15T09:27:05.0166924Z           "evidence": [
2026-06-15T09:27:05.0167138Z             {
2026-06-15T09:27:05.0167367Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T09:27:05.0167631Z               "line": 388
2026-06-15T09:27:05.0167960Z             },
2026-06-15T09:27:05.0168162Z             {
2026-06-15T09:27:05.0168391Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T09:27:05.0168669Z               "line": 469
2026-06-15T09:27:05.0168879Z             }
2026-06-15T09:27:05.0169154Z           ]
2026-06-15T09:27:05.0169341Z         }
2026-06-15T09:27:05.0169532Z       }
2026-06-15T09:27:05.0169717Z     },
2026-06-15T09:27:05.0169894Z     {
2026-06-15T09:27:05.0170118Z       "id": "REQ-HAZARD-DETACHED-PIPE-INHERIT",
2026-06-15T09:27:05.0171540Z       "title": "Windows detached long-lived children must not inherit a captured caller's pipe: every detach-spawn of an immortal child (daemon, shell binary) runs bInheritHandles=FALSE, or a caller capturing output anywhere up the process chain hangs forever on a pipe that never EOFs — std-handle flag stripping is NOT sufficient (grandparent strays still flow) (5.6)",
2026-06-15T09:27:05.0172780Z       "requiredStages": [
2026-06-15T09:27:05.0173014Z         "impl",
2026-06-15T09:27:05.0173227Z         "unit"
2026-06-15T09:27:05.0173431Z       ],
2026-06-15T09:27:05.0173625Z       "stages": {
2026-06-15T09:27:05.0173825Z         "doc": {
2026-06-15T09:27:05.0174040Z           "complete": true,
2026-06-15T09:27:05.0174278Z           "evidence": [
2026-06-15T09:27:05.0174488Z             {
2026-06-15T09:27:05.0174722Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T09:27:05.0175003Z               "line": 206
2026-06-15T09:27:05.0175218Z             }
2026-06-15T09:27:05.0175403Z           ]
2026-06-15T09:27:05.0175596Z         },
2026-06-15T09:27:05.0175784Z         "impl": {
2026-06-15T09:27:05.0175998Z           "complete": true,
2026-06-15T09:27:05.0176245Z           "evidence": [
2026-06-15T09:27:05.0176453Z             {
2026-06-15T09:27:05.0176698Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:27:05.0176983Z               "line": 593
2026-06-15T09:27:05.0177199Z             },
2026-06-15T09:27:05.0177398Z             {
2026-06-15T09:27:05.0177636Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:27:05.0177918Z               "line": 685
2026-06-15T09:27:05.0178134Z             },
2026-06-15T09:27:05.0178328Z             {
2026-06-15T09:27:05.0178571Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T09:27:05.0178857Z               "line": 183
2026-06-15T09:27:05.0179158Z             }
2026-06-15T09:27:05.0179352Z           ]
2026-06-15T09:27:05.0179533Z         },
2026-06-15T09:27:05.0179719Z         "int": {
2026-06-15T09:27:05.0179925Z           "complete": false,
2026-06-15T09:27:05.0180168Z           "evidence": []
2026-06-15T09:27:05.0180378Z         },
2026-06-15T09:27:05.0180573Z         "unit": {
2026-06-15T09:27:05.0180783Z           "complete": true,
2026-06-15T09:27:05.0181015Z           "evidence": [
2026-06-15T09:27:05.0181227Z             {
2026-06-15T09:27:05.0181453Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:27:05.0181729Z               "line": 734
2026-06-15T09:27:05.0181957Z             },
2026-06-15T09:27:05.0182157Z             {
2026-06-15T09:27:05.0182405Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-15T09:27:05.0182692Z               "line": 44
2026-06-15T09:27:05.0182901Z             },
2026-06-15T09:27:05.0183091Z             {
2026-06-15T09:27:05.0183322Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-15T09:27:05.0183589Z               "line": 57
2026-06-15T09:27:05.0183811Z             },
2026-06-15T09:27:05.0184001Z             {
2026-06-15T09:27:05.0184252Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-15T09:27:05.0184538Z               "line": 54
2026-06-15T09:27:05.0184752Z             }
2026-06-15T09:27:05.0184953Z           ]
2026-06-15T09:27:05.0185144Z         }
2026-06-15T09:27:05.0185339Z       }
2026-06-15T09:27:05.0185531Z     },
2026-06-15T09:27:05.0185725Z     {
2026-06-15T09:27:05.0185954Z       "id": "REQ-HAZARD-DIRECT-WRITE-PRECEDENCE",
2026-06-15T09:27:05.0186478Z       "title": "Direct-write precedence marker (with node id) guards stale overwrite (6.5)",
2026-06-15T09:27:05.0186872Z       "requiredStages": [
2026-06-15T09:27:05.0187100Z         "impl",
2026-06-15T09:27:05.0187290Z         "unit"
2026-06-15T09:27:05.0187472Z       ],
2026-06-15T09:27:05.0187657Z       "stages": {
2026-06-15T09:27:05.0187863Z         "doc": {
2026-06-15T09:27:05.0188074Z           "complete": false,
2026-06-15T09:27:05.0188306Z           "evidence": []
2026-06-15T09:27:05.0188525Z         },
2026-06-15T09:27:05.0188718Z         "impl": {
2026-06-15T09:27:05.0188926Z           "complete": true,
2026-06-15T09:27:05.0189240Z           "evidence": [
2026-06-15T09:27:05.0189559Z             {
2026-06-15T09:27:05.0189794Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T09:27:05.0190075Z               "line": 26
2026-06-15T09:27:05.0190274Z             },
2026-06-15T09:27:05.0190461Z             {
2026-06-15T09:27:05.0190695Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T09:27:05.0190976Z               "line": 135
2026-06-15T09:27:05.0191200Z             },
2026-06-15T09:27:05.0191400Z             {
2026-06-15T09:27:05.0191642Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-15T09:27:05.0191926Z               "line": 26
2026-06-15T09:27:05.0192140Z             },
2026-06-15T09:27:05.0192331Z             {
2026-06-15T09:27:05.0192570Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-15T09:27:05.0192857Z               "line": 237
2026-06-15T09:27:05.0193074Z             }
2026-06-15T09:27:05.0193271Z           ]
2026-06-15T09:27:05.0193456Z         },
2026-06-15T09:27:05.0193666Z         "int": {
2026-06-15T09:27:05.0193887Z           "complete": false,
2026-06-15T09:27:05.0194125Z           "evidence": []
2026-06-15T09:27:05.0194347Z         },
2026-06-15T09:27:05.0194538Z         "unit": {
2026-06-15T09:27:05.0194750Z           "complete": true,
2026-06-15T09:27:05.0194978Z           "evidence": [
2026-06-15T09:27:05.0195198Z             {
2026-06-15T09:27:05.0195438Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T09:27:05.0195723Z               "line": 161
2026-06-15T09:27:05.0195937Z             },
2026-06-15T09:27:05.0196138Z             {
2026-06-15T09:27:05.0196372Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T09:27:05.0196643Z               "line": 170
2026-06-15T09:27:05.0196867Z             },
2026-06-15T09:27:05.0197062Z             {
2026-06-15T09:27:05.0197292Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T09:27:05.0197565Z               "line": 179
2026-06-15T09:27:05.0197785Z             },
2026-06-15T09:27:05.0197990Z             {
2026-06-15T09:27:05.0198213Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T09:27:05.0198490Z               "line": 190
2026-06-15T09:27:05.0198704Z             },
2026-06-15T09:27:05.0198890Z             {
2026-06-15T09:27:05.0199210Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T09:27:05.0199487Z               "line": 199
2026-06-15T09:27:05.0199710Z             },
2026-06-15T09:27:05.0199900Z             {
2026-06-15T09:27:05.0200138Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T09:27:05.0200396Z               "line": 216
2026-06-15T09:27:05.0200602Z             },
2026-06-15T09:27:05.0200791Z             {
2026-06-15T09:27:05.0201016Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T09:27:05.0201288Z               "line": 242
2026-06-15T09:27:05.0201513Z             },
2026-06-15T09:27:05.0201703Z             {
2026-06-15T09:27:05.0201931Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T09:27:05.0202207Z               "line": 295
2026-06-15T09:27:05.0202424Z             },
2026-06-15T09:27:05.0202610Z             {
2026-06-15T09:27:05.0202849Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T09:27:05.0203116Z               "line": 244
2026-06-15T09:27:05.0203324Z             },
2026-06-15T09:27:05.0203626Z             {
2026-06-15T09:27:05.0203878Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-15T09:27:05.0204169Z               "line": 265
2026-06-15T09:27:05.0204380Z             },
2026-06-15T09:27:05.0204575Z             {
2026-06-15T09:27:05.0204818Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-15T09:27:05.0205102Z               "line": 293
2026-06-15T09:27:05.0205310Z             },
2026-06-15T09:27:05.0205506Z             {
2026-06-15T09:27:05.0205745Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-15T09:27:05.0206031Z               "line": 317
2026-06-15T09:27:05.0206249Z             },
2026-06-15T09:27:05.0206583Z             {
2026-06-15T09:27:05.0206831Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-15T09:27:05.0207117Z               "line": 327
2026-06-15T09:27:05.0207328Z             },
2026-06-15T09:27:05.0207530Z             {
2026-06-15T09:27:05.0207767Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T09:27:05.0208058Z               "line": 540
2026-06-15T09:27:05.0208269Z             }
2026-06-15T09:27:05.0208458Z           ]
2026-06-15T09:27:05.0208650Z         }
2026-06-15T09:27:05.0208841Z       }
2026-06-15T09:27:05.0209107Z     },
2026-06-15T09:27:05.0209298Z     {
2026-06-15T09:27:05.0209542Z       "id": "REQ-HAZARD-DROP-FILE-SINGLE-WRITER",
2026-06-15T09:27:05.0209909Z       "title": "Drop files are daemon-owned single-writer (6.4)",
2026-06-15T09:27:05.0210219Z       "requiredStages": [
2026-06-15T09:27:05.0210450Z         "impl",
2026-06-15T09:27:05.0210656Z         "unit"
2026-06-15T09:27:05.0210857Z       ],
2026-06-15T09:27:05.0211066Z       "stages": {
2026-06-15T09:27:05.0211271Z         "doc": {
2026-06-15T09:27:05.0211481Z           "complete": false,
2026-06-15T09:27:05.0211720Z           "evidence": []
2026-06-15T09:27:05.0211934Z         },
2026-06-15T09:27:05.0212130Z         "impl": {
2026-06-15T09:27:05.0212344Z           "complete": true,
2026-06-15T09:27:05.0212581Z           "evidence": [
2026-06-15T09:27:05.0212804Z             {
2026-06-15T09:27:05.0213037Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T09:27:05.0213318Z               "line": 25
2026-06-15T09:27:05.0213532Z             },
2026-06-15T09:27:05.0213734Z             {
2026-06-15T09:27:05.0213967Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T09:27:05.0214248Z               "line": 26
2026-06-15T09:27:05.0214458Z             },
2026-06-15T09:27:05.0214659Z             {
2026-06-15T09:27:05.0214882Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T09:27:05.0215154Z               "line": 159
2026-06-15T09:27:05.0215383Z             }
2026-06-15T09:27:05.0215582Z           ]
2026-06-15T09:27:05.0215770Z         },
2026-06-15T09:27:05.0215967Z         "int": {
2026-06-15T09:27:05.0216180Z           "complete": false,
2026-06-15T09:27:05.0216419Z           "evidence": []
2026-06-15T09:27:05.0216643Z         },
2026-06-15T09:27:05.0216833Z         "unit": {
2026-06-15T09:27:05.0217053Z           "complete": true,
2026-06-15T09:27:05.0217292Z           "evidence": [
2026-06-15T09:27:05.0217502Z             {
2026-06-15T09:27:05.0217735Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T09:27:05.0218005Z               "line": 188
2026-06-15T09:27:05.0218225Z             },
2026-06-15T09:27:05.0218422Z             {
2026-06-15T09:27:05.0218651Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T09:27:05.0218924Z               "line": 240
2026-06-15T09:27:05.0219229Z             },
2026-06-15T09:27:05.0219425Z             {
2026-06-15T09:27:05.0219662Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T09:27:05.0219948Z               "line": 186
2026-06-15T09:27:05.0220168Z             }
2026-06-15T09:27:05.0220355Z           ]
2026-06-15T09:27:05.0220554Z         }
2026-06-15T09:27:05.0220746Z       }
2026-06-15T09:27:05.0220921Z     },
2026-06-15T09:27:05.0221107Z     {
2026-06-15T09:27:05.0221321Z       "id": "REQ-HAZARD-EBUSY-RENAME",
2026-06-15T09:27:05.0221774Z       "title": "tmp-write + atomic-rename + retry on Windows EBUSY (5.2)",
2026-06-15T09:27:05.0222112Z       "requiredStages": [
2026-06-15T09:27:05.0222333Z         "impl",
2026-06-15T09:27:05.0222542Z         "unit"
2026-06-15T09:27:05.0222742Z       ],
2026-06-15T09:27:05.0222929Z       "stages": {
2026-06-15T09:27:05.0223137Z         "doc": {
2026-06-15T09:27:05.0226817Z           "complete": false,
2026-06-15T09:27:05.0227079Z           "evidence": []
2026-06-15T09:27:05.0227303Z         },
2026-06-15T09:27:05.0227499Z         "impl": {
2026-06-15T09:27:05.0227728Z           "complete": true,
2026-06-15T09:27:05.0228124Z           "evidence": [
2026-06-15T09:27:05.0228348Z             {
2026-06-15T09:27:05.0228594Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T09:27:05.0228892Z               "line": 48
2026-06-15T09:27:05.0229184Z             },
2026-06-15T09:27:05.0229389Z             {
2026-06-15T09:27:05.0229631Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T09:27:05.0229932Z               "line": 55
2026-06-15T09:27:05.0230147Z             },
2026-06-15T09:27:05.0230343Z             {
2026-06-15T09:27:05.0230571Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T09:27:05.0230847Z               "line": 74
2026-06-15T09:27:05.0231076Z             },
2026-06-15T09:27:05.0231259Z             {
2026-06-15T09:27:05.0231490Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T09:27:05.0231766Z               "line": 91
2026-06-15T09:27:05.0231972Z             }
2026-06-15T09:27:05.0232162Z           ]
2026-06-15T09:27:05.0232349Z         },
2026-06-15T09:27:05.0232564Z         "int": {
2026-06-15T09:27:05.0232782Z           "complete": false,
2026-06-15T09:27:05.0233011Z           "evidence": []
2026-06-15T09:27:05.0233227Z         },
2026-06-15T09:27:05.0233426Z         "unit": {
2026-06-15T09:27:05.0233640Z           "complete": true,
2026-06-15T09:27:05.0233878Z           "evidence": [
2026-06-15T09:27:05.0234089Z             {
2026-06-15T09:27:05.0234324Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T09:27:05.0234601Z               "line": 149
2026-06-15T09:27:05.0234830Z             },
2026-06-15T09:27:05.0235020Z             {
2026-06-15T09:27:05.0235254Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T09:27:05.0235525Z               "line": 166
2026-06-15T09:27:05.0235746Z             },
2026-06-15T09:27:05.0235936Z             {
2026-06-15T09:27:05.0236174Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T09:27:05.0236447Z               "line": 176
2026-06-15T09:27:05.0236669Z             },
2026-06-15T09:27:05.0236872Z             {
2026-06-15T09:27:05.0237096Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T09:27:05.0237368Z               "line": 194
2026-06-15T09:27:05.0237581Z             },
2026-06-15T09:27:05.0237778Z             {
2026-06-15T09:27:05.0238007Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T09:27:05.0238288Z               "line": 207
2026-06-15T09:27:05.0238497Z             }
2026-06-15T09:27:05.0238689Z           ]
2026-06-15T09:27:05.0238879Z         }
2026-06-15T09:27:05.0239159Z       }
2026-06-15T09:27:05.0239349Z     },
2026-06-15T09:27:05.0239528Z     {
2026-06-15T09:27:05.0239763Z       "id": "REQ-HAZARD-ECHO-BEFORE-SIGNOFF",
2026-06-15T09:27:05.0240153Z       "title": "Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)",
2026-06-15T09:27:05.0240516Z       "requiredStages": [
2026-06-15T09:27:05.0240745Z         "impl",
2026-06-15T09:27:05.0240941Z         "unit"
2026-06-15T09:27:05.0241141Z       ],
2026-06-15T09:27:05.0241345Z       "stages": {
2026-06-15T09:27:05.0241557Z         "doc": {
2026-06-15T09:27:05.0241766Z           "complete": false,
2026-06-15T09:27:05.0242007Z           "evidence": []
2026-06-15T09:27:05.0242227Z         },
2026-06-15T09:27:05.0242422Z         "impl": {
2026-06-15T09:27:05.0242637Z           "complete": true,
2026-06-15T09:27:05.0242984Z           "evidence": [
2026-06-15T09:27:05.0243195Z             {
2026-06-15T09:27:05.0243434Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:27:05.0243725Z               "line": 416
2026-06-15T09:27:05.0243948Z             },
2026-06-15T09:27:05.0244149Z             {
2026-06-15T09:27:05.0244376Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T09:27:05.0244659Z               "line": 26
2026-06-15T09:27:05.0244865Z             }
2026-06-15T09:27:05.0245061Z           ]
2026-06-15T09:27:05.0245260Z         },
2026-06-15T09:27:05.0245452Z         "int": {
2026-06-15T09:27:05.0245667Z           "complete": false,
2026-06-15T09:27:05.0246010Z           "evidence": []
2026-06-15T09:27:05.0246229Z         },
2026-06-15T09:27:05.0246419Z         "unit": {
2026-06-15T09:27:05.0246630Z           "complete": true,
2026-06-15T09:27:05.0246863Z           "evidence": [
2026-06-15T09:27:05.0247072Z             {
2026-06-15T09:27:05.0247305Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T09:27:05.0247594Z               "line": 150
2026-06-15T09:27:05.0247808Z             },
2026-06-15T09:27:05.0248004Z             {
2026-06-15T09:27:05.0248229Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T09:27:05.0248519Z               "line": 208
2026-06-15T09:27:05.0248728Z             }
2026-06-15T09:27:05.0248920Z           ]
2026-06-15T09:27:05.0249178Z         }
2026-06-15T09:27:05.0249367Z       }
2026-06-15T09:27:05.0249550Z     },
2026-06-15T09:27:05.0249738Z     {
2026-06-15T09:27:05.0249961Z       "id": "REQ-HAZARD-ELEVATED-DAEMON-SPAWN",
2026-06-15T09:27:05.0251591Z       "title": "The daemon always runs unelevated in the invoking user's universe, regardless of which command spawns it: an elevated spawner de-elevates (Windows: UAC linked token via CreateProcessWithTokenW; Linux: drop to SUDO_UID/SUDO_GID + the invoker's HOME) — an elevated daemon's pipes deny unelevated clients (every later spt reads not-running→spawn→bind Access-denied) and a sudo'd daemon roots the user's state universe (5.7)",
2026-06-15T09:27:05.0252929Z       "requiredStages": [
2026-06-15T09:27:05.0253160Z         "doc",
2026-06-15T09:27:05.0253369Z         "impl",
2026-06-15T09:27:05.0253559Z         "unit"
2026-06-15T09:27:05.0253755Z       ],
2026-06-15T09:27:05.0253946Z       "stages": {
2026-06-15T09:27:05.0254141Z         "doc": {
2026-06-15T09:27:05.0254352Z           "complete": true,
2026-06-15T09:27:05.0254585Z           "evidence": [
2026-06-15T09:27:05.0254798Z             {
2026-06-15T09:27:05.0255027Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T09:27:05.0255306Z               "line": 214
2026-06-15T09:27:05.0255530Z             }
2026-06-15T09:27:05.0255726Z           ]
2026-06-15T09:27:05.0255912Z         },
2026-06-15T09:27:05.0256111Z         "impl": {
2026-06-15T09:27:05.0256336Z           "complete": true,
2026-06-15T09:27:05.0256565Z           "evidence": [
2026-06-15T09:27:05.0256765Z             {
2026-06-15T09:27:05.0257003Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:27:05.0257285Z               "line": 54
2026-06-15T09:27:05.0257500Z             },
2026-06-15T09:27:05.0257694Z             {
2026-06-15T09:27:05.0257931Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:27:05.0258207Z               "line": 511
2026-06-15T09:27:05.0258420Z             },
2026-06-15T09:27:05.0258612Z             {
2026-06-15T09:27:05.0258855Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T09:27:05.0259222Z               "line": 36
2026-06-15T09:27:05.0259433Z             },
2026-06-15T09:27:05.0259627Z             {
2026-06-15T09:27:05.0259861Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T09:27:05.0260143Z               "line": 59
2026-06-15T09:27:05.0260356Z             },
2026-06-15T09:27:05.0260544Z             {
2026-06-15T09:27:05.0260774Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T09:27:05.0261055Z               "line": 83
2026-06-15T09:27:05.0261384Z             },
2026-06-15T09:27:05.0261574Z             {
2026-06-15T09:27:05.0261803Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T09:27:05.0262085Z               "line": 140
2026-06-15T09:27:05.0262300Z             },
2026-06-15T09:27:05.0262495Z             {
2026-06-15T09:27:05.0262733Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T09:27:05.0263020Z               "line": 159
2026-06-15T09:27:05.0263237Z             },
2026-06-15T09:27:05.0263423Z             {
2026-06-15T09:27:05.0263658Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T09:27:05.0264053Z               "line": 384
2026-06-15T09:27:05.0264263Z             },
2026-06-15T09:27:05.0264457Z             {
2026-06-15T09:27:05.0264691Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T09:27:05.0264973Z               "line": 526
2026-06-15T09:27:05.0265184Z             },
2026-06-15T09:27:05.0265372Z             {
2026-06-15T09:27:05.0265615Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T09:27:05.0265896Z               "line": 572
2026-06-15T09:27:05.0266123Z             },
2026-06-15T09:27:05.0266319Z             {
2026-06-15T09:27:05.0266553Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:27:05.0266825Z               "line": 300
2026-06-15T09:27:05.0267054Z             },
2026-06-15T09:27:05.0267254Z             {
2026-06-15T09:27:05.0267474Z               "path": "crates/spt/src/main.rs",
2026-06-15T09:27:05.0267582Z               "line": 41
2026-06-15T09:27:05.0267683Z             }
2026-06-15T09:27:05.0267784Z           ]
2026-06-15T09:27:05.0267887Z         },
2026-06-15T09:27:05.0267978Z         "int": {
2026-06-15T09:27:05.0268094Z           "complete": false,
2026-06-15T09:27:05.0268193Z           "evidence": []
2026-06-15T09:27:05.0268292Z         },
2026-06-15T09:27:05.0268392Z         "unit": {
2026-06-15T09:27:05.0268505Z           "complete": true,
2026-06-15T09:27:05.0268623Z           "evidence": [
2026-06-15T09:27:05.0268714Z             {
2026-06-15T09:27:05.0268858Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T09:27:05.0269034Z               "line": 785
2026-06-15T09:27:05.0269129Z             },
2026-06-15T09:27:05.0269233Z             {
2026-06-15T09:27:05.0269383Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T09:27:05.0269492Z               "line": 826
2026-06-15T09:27:05.0269591Z             },
2026-06-15T09:27:05.0269688Z             {
2026-06-15T09:27:05.0269821Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T09:27:05.0269925Z               "line": 900
2026-06-15T09:27:05.0270031Z             }
2026-06-15T09:27:05.0270139Z           ]
2026-06-15T09:27:05.0270235Z         }
2026-06-15T09:27:05.0270327Z       }
2026-06-15T09:27:05.0270426Z     },
2026-06-15T09:27:05.0270521Z     {
2026-06-15T09:27:05.0270666Z       "id": "REQ-HAZARD-ENVELOPE-CR-LINESAFE",
2026-06-15T09:27:05.0272487Z       "title": "Envelope CR-linesafety (4.1): the line-framed EVENT codec must neutralize raw carriage returns — `event_body_escape` folds CRLF/lone-CR to the codec's representable linebreak (`\\n`→`<br>`) BEFORE framing, so a body carrying `\\r` (Windows `echo`/CRLF text crossing nodes) cannot survive into the single-line envelope and trigger a receiver terminal CR→col0 overwrite that corrupts the frame. Robustness on unrepresentable input, NOT a wire-format change (decoder untouched, amp-last invariant held). Belt-and-suspenders: `spt send`/`ring` also trim stdin (parity with `notify`).",
2026-06-15T09:27:05.0272593Z       "requiredStages": [
2026-06-15T09:27:05.0272702Z         "impl",
2026-06-15T09:27:05.0272806Z         "unit"
2026-06-15T09:27:05.0272908Z       ],
2026-06-15T09:27:05.0273016Z       "stages": {
2026-06-15T09:27:05.0273117Z         "doc": {
2026-06-15T09:27:05.0273228Z           "complete": false,
2026-06-15T09:27:05.0273335Z           "evidence": []
2026-06-15T09:27:05.0273538Z         },
2026-06-15T09:27:05.0273640Z         "impl": {
2026-06-15T09:27:05.0273759Z           "complete": true,
2026-06-15T09:27:05.0273860Z           "evidence": [
2026-06-15T09:27:05.0273951Z             {
2026-06-15T09:27:05.0274093Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T09:27:05.0274199Z               "line": 31
2026-06-15T09:27:05.0274298Z             }
2026-06-15T09:27:05.0274393Z           ]
2026-06-15T09:27:05.0274495Z         },
2026-06-15T09:27:05.0274590Z         "int": {
2026-06-15T09:27:05.0274694Z           "complete": false,
2026-06-15T09:27:05.0274805Z           "evidence": []
2026-06-15T09:27:05.0274904Z         },
2026-06-15T09:27:05.0275124Z         "unit": {
2026-06-15T09:27:05.0275223Z           "complete": true,
2026-06-15T09:27:05.0275328Z           "evidence": [
2026-06-15T09:27:05.0275434Z             {
2026-06-15T09:27:05.0275576Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T09:27:05.0275686Z               "line": 181
2026-06-15T09:27:05.0275792Z             }
2026-06-15T09:27:05.0275895Z           ]
2026-06-15T09:27:05.0275995Z         }
2026-06-15T09:27:05.0276100Z       }
2026-06-15T09:27:05.0276193Z     },
2026-06-15T09:27:05.0276283Z     {
2026-06-15T09:27:05.0276426Z       "id": "REQ-HAZARD-ENVELOPE-DECODE-ORDER",
2026-06-15T09:27:05.0276597Z       "title": "Envelope decode order, ampersand decoded last (4.1)",
2026-06-15T09:27:05.0276722Z       "requiredStages": [
2026-06-15T09:27:05.0276822Z         "impl",
2026-06-15T09:27:05.0276922Z         "unit"
2026-06-15T09:27:05.0277023Z       ],
2026-06-15T09:27:05.0277123Z       "stages": {
2026-06-15T09:27:05.0277222Z         "doc": {
2026-06-15T09:27:05.0277343Z           "complete": false,
2026-06-15T09:27:05.0277452Z           "evidence": []
2026-06-15T09:27:05.0277551Z         },
2026-06-15T09:27:05.0277647Z         "impl": {
2026-06-15T09:27:05.0277766Z           "complete": true,
2026-06-15T09:27:05.0277866Z           "evidence": [
2026-06-15T09:27:05.0277967Z             {
2026-06-15T09:27:05.0278114Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T09:27:05.0278219Z               "line": 49
2026-06-15T09:27:05.0278320Z             },
2026-06-15T09:27:05.0278424Z             {
2026-06-15T09:27:05.0278563Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T09:27:05.0278668Z               "line": 81
2026-06-15T09:27:05.0278762Z             }
2026-06-15T09:27:05.0278861Z           ]
2026-06-15T09:27:05.0279051Z         },
2026-06-15T09:27:05.0279136Z         "int": {
2026-06-15T09:27:05.0279241Z           "complete": false,
2026-06-15T09:27:05.0279346Z           "evidence": []
2026-06-15T09:27:05.0279451Z         },
2026-06-15T09:27:05.0279550Z         "unit": {
2026-06-15T09:27:05.0279661Z           "complete": true,
2026-06-15T09:27:05.0279765Z           "evidence": [
2026-06-15T09:27:05.0279865Z             {
2026-06-15T09:27:05.0280004Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T09:27:05.0280108Z               "line": 156
2026-06-15T09:27:05.0280214Z             },
2026-06-15T09:27:05.0280305Z             {
2026-06-15T09:27:05.0280442Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T09:27:05.0280548Z               "line": 173
2026-06-15T09:27:05.0280648Z             },
2026-06-15T09:27:05.0280752Z             {
2026-06-15T09:27:05.0280896Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T09:27:05.0281000Z               "line": 196
2026-06-15T09:27:05.0281100Z             }
2026-06-15T09:27:05.0281197Z           ]
2026-06-15T09:27:05.0281292Z         }
2026-06-15T09:27:05.0281381Z       }
2026-06-15T09:27:05.0281481Z     },
2026-06-15T09:27:05.0281581Z     {
2026-06-15T09:27:05.0281726Z       "id": "REQ-HAZARD-ENVELOPE-PARSER-SAFE",
2026-06-15T09:27:05.0281933Z       "title": "Two-slice envelope parser is panic-free and tolerant (4.2)",
2026-06-15T09:27:05.0282046Z       "requiredStages": [
2026-06-15T09:27:05.0282146Z         "impl",
2026-06-15T09:27:05.0282251Z         "unit"
2026-06-15T09:27:05.0282447Z       ],
2026-06-15T09:27:05.0282556Z       "stages": {
2026-06-15T09:27:05.0282651Z         "doc": {
2026-06-15T09:27:05.0282767Z           "complete": false,
2026-06-15T09:27:05.0282871Z           "evidence": []
2026-06-15T09:27:05.0282966Z         },
2026-06-15T09:27:05.0283061Z         "impl": {
2026-06-15T09:27:05.0283177Z           "complete": true,
2026-06-15T09:27:05.0283281Z           "evidence": [
2026-06-15T09:27:05.0283381Z             {
2026-06-15T09:27:05.0283529Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T09:27:05.0283629Z               "line": 120
2026-06-15T09:27:05.0283730Z             }
2026-06-15T09:27:05.0283930Z           ]
2026-06-15T09:27:05.0284031Z         },
2026-06-15T09:27:05.0284131Z         "int": {
2026-06-15T09:27:05.0284238Z           "complete": false,
2026-06-15T09:27:05.0284348Z           "evidence": []
2026-06-15T09:27:05.0284434Z         },
2026-06-15T09:27:05.0284539Z         "unit": {
2026-06-15T09:27:05.0284658Z           "complete": true,
2026-06-15T09:27:05.0284754Z           "evidence": [
2026-06-15T09:27:05.0284854Z             {
2026-06-15T09:27:05.0284997Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T09:27:05.0285111Z               "line": 212
2026-06-15T09:27:05.0285206Z             },
2026-06-15T09:27:05.0285312Z             {
2026-06-15T09:27:05.0285459Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T09:27:05.0285568Z               "line": 221
2026-06-15T09:27:05.0285675Z             },
2026-06-15T09:27:05.0285769Z             {
2026-06-15T09:27:05.0285912Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T09:27:05.0286028Z               "line": 229
2026-06-15T09:27:05.0286131Z             },
2026-06-15T09:27:05.0286232Z             {
2026-06-15T09:27:05.0286380Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T09:27:05.0286479Z               "line": 239
2026-06-15T09:27:05.0286578Z             },
2026-06-15T09:27:05.0286688Z             {
2026-06-15T09:27:05.0286820Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T09:27:05.0286924Z               "line": 249
2026-06-15T09:27:05.0287030Z             }
2026-06-15T09:27:05.0287130Z           ]
2026-06-15T09:27:05.0287220Z         }
2026-06-15T09:27:05.0287321Z       }
2026-06-15T09:27:05.0287420Z     },
2026-06-15T09:27:05.0287520Z     {
2026-06-15T09:27:05.0287659Z       "id": "REQ-HAZARD-EPHEMERAL-CLEANUP",
2026-06-15T09:27:05.0287849Z       "title": "Ephemeral perch cleanup on every ring exit path (3.1)",
2026-06-15T09:27:05.0287955Z       "requiredStages": [
2026-06-15T09:27:05.0288055Z         "impl",
2026-06-15T09:27:05.0288159Z         "unit"
2026-06-15T09:27:05.0288260Z       ],
2026-06-15T09:27:05.0288360Z       "stages": {
2026-06-15T09:27:05.0288460Z         "doc": {
2026-06-15T09:27:05.0288571Z           "complete": false,
2026-06-15T09:27:05.0288684Z           "evidence": []
2026-06-15T09:27:05.0288779Z         },
2026-06-15T09:27:05.0288876Z         "impl": {
2026-06-15T09:27:05.0289080Z           "complete": true,
2026-06-15T09:27:05.0289176Z           "evidence": [
2026-06-15T09:27:05.0289276Z             {
2026-06-15T09:27:05.0289412Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T09:27:05.0289522Z               "line": 14
2026-06-15T09:27:05.0289625Z             },
2026-06-15T09:27:05.0289715Z             {
2026-06-15T09:27:05.0289844Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T09:27:05.0289945Z               "line": 63
2026-06-15T09:27:05.0290048Z             }
2026-06-15T09:27:05.0290150Z           ]
2026-06-15T09:27:05.0290250Z         },
2026-06-15T09:27:05.0290359Z         "int": {
2026-06-15T09:27:05.0290474Z           "complete": false,
2026-06-15T09:27:05.0290579Z           "evidence": []
2026-06-15T09:27:05.0290678Z         },
2026-06-15T09:27:05.0290779Z         "unit": {
2026-06-15T09:27:05.0290884Z           "complete": true,
2026-06-15T09:27:05.0290993Z           "evidence": [
2026-06-15T09:27:05.0291194Z             {
2026-06-15T09:27:05.0291317Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T09:27:05.0291433Z               "line": 164
2026-06-15T09:27:05.0291528Z             },
2026-06-15T09:27:05.0291632Z             {
2026-06-15T09:27:05.0291762Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T09:27:05.0291866Z               "line": 198
2026-06-15T09:27:05.0291970Z             },
2026-06-15T09:27:05.0292070Z             {
2026-06-15T09:27:05.0292197Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T09:27:05.0292301Z               "line": 220
2026-06-15T09:27:05.0292397Z             }
2026-06-15T09:27:05.0292498Z           ]
2026-06-15T09:27:05.0292687Z         }
2026-06-15T09:27:05.0292793Z       }
2026-06-15T09:27:05.0292892Z     },
2026-06-15T09:27:05.0292987Z     {
2026-06-15T09:27:05.0293117Z       "id": "REQ-HAZARD-EPOCH-RESET",
2026-06-15T09:27:05.0294523Z       "title": "Advertisement-epoch reset strands a node: peers' higher last-seen epoch drops the reset node's fresh advertisements as Stale until the counter outruns history. Common case (full reinstall/re-pair) is mitigated by REQ-SUBNET-7's ceremony eviction (peer-side epoch memory dies with the deleted row — acceptance-verified); the residual narrow slice (epoch file lost, identity kept) is documented, guard deferred to a field hit (4.11)",
2026-06-15T09:27:05.0294648Z       "requiredStages": [],
2026-06-15T09:27:05.0294752Z       "stages": {
2026-06-15T09:27:05.0294856Z         "doc": {
2026-06-15T09:27:05.0294961Z           "complete": true,
2026-06-15T09:27:05.0295067Z           "evidence": [
2026-06-15T09:27:05.0295165Z             {
2026-06-15T09:27:05.0295310Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T09:27:05.0295410Z               "line": 165
2026-06-15T09:27:05.0295509Z             }
2026-06-15T09:27:05.0295610Z           ]
2026-06-15T09:27:05.0295705Z         },
2026-06-15T09:27:05.0295814Z         "impl": {
2026-06-15T09:27:05.0295930Z           "complete": false,
2026-06-15T09:27:05.0296033Z           "evidence": []
2026-06-15T09:27:05.0296133Z         },
2026-06-15T09:27:05.0296230Z         "int": {
2026-06-15T09:27:05.0296343Z           "complete": false,
2026-06-15T09:27:05.0296453Z           "evidence": []
2026-06-15T09:27:05.0296545Z         },
2026-06-15T09:27:05.0296653Z         "unit": {
2026-06-15T09:27:05.0296763Z           "complete": false,
2026-06-15T09:27:05.0296874Z           "evidence": []
2026-06-15T09:27:05.0296977Z         }
2026-06-15T09:27:05.0297082Z       }
2026-06-15T09:27:05.0297181Z     },
2026-06-15T09:27:05.0297285Z     {
2026-06-15T09:27:05.0297431Z       "id": "REQ-HAZARD-EVENTPART-REASSEMBLY",
2026-06-15T09:27:05.0297680Z       "title": "EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently",
2026-06-15T09:27:05.0297799Z       "requiredStages": [
2026-06-15T09:27:05.0297900Z         "impl",
2026-06-15T09:27:05.0298004Z         "unit"
2026-06-15T09:27:05.0298094Z       ],
2026-06-15T09:27:05.0298186Z       "stages": {
2026-06-15T09:27:05.0298291Z         "doc": {
2026-06-15T09:27:05.0298395Z           "complete": false,
2026-06-15T09:27:05.0298515Z           "evidence": []
2026-06-15T09:27:05.0298615Z         },
2026-06-15T09:27:05.0298719Z         "impl": {
2026-06-15T09:27:05.0298821Z           "complete": true,
2026-06-15T09:27:05.0298934Z           "evidence": [
2026-06-15T09:27:05.0299126Z             {
2026-06-15T09:27:05.0299268Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T09:27:05.0299378Z               "line": 76
2026-06-15T09:27:05.0299474Z             },
2026-06-15T09:27:05.0299573Z             {
2026-06-15T09:27:05.0299713Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T09:27:05.0299831Z               "line": 167
2026-06-15T09:27:05.0299935Z             },
2026-06-15T09:27:05.0300034Z             {
2026-06-15T09:27:05.0300176Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T09:27:05.0300280Z               "line": 233
2026-06-15T09:27:05.0300380Z             },
2026-06-15T09:27:05.0300576Z             {
2026-06-15T09:27:05.0300710Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T09:27:05.0300820Z               "line": 272
2026-06-15T09:27:05.0300924Z             }
2026-06-15T09:27:05.0301025Z           ]
2026-06-15T09:27:05.0301125Z         },
2026-06-15T09:27:05.0301229Z         "int": {
2026-06-15T09:27:05.0301334Z           "complete": false,
2026-06-15T09:27:05.0301439Z           "evidence": []
2026-06-15T09:27:05.0301534Z         },
2026-06-15T09:27:05.0301639Z         "unit": {
2026-06-15T09:27:05.0301759Z           "complete": true,
2026-06-15T09:27:05.0301858Z           "evidence": [
2026-06-15T09:27:05.0302064Z             {
2026-06-15T09:27:05.0302207Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T09:27:05.0302323Z               "line": 321
2026-06-15T09:27:05.0302421Z             },
2026-06-15T09:27:05.0302520Z             {
2026-06-15T09:27:05.0302663Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T09:27:05.0302771Z               "line": 329
2026-06-15T09:27:05.0302875Z             },
2026-06-15T09:27:05.0302971Z             {
2026-06-15T09:27:05.0303114Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T09:27:05.0303214Z               "line": 356
2026-06-15T09:27:05.0303310Z             },
2026-06-15T09:27:05.0303410Z             {
2026-06-15T09:27:05.0303548Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T09:27:05.0303648Z               "line": 395
2026-06-15T09:27:05.0303749Z             },
2026-06-15T09:27:05.0303853Z             {
2026-06-15T09:27:05.0303987Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T09:27:05.0304092Z               "line": 406
2026-06-15T09:27:05.0304196Z             },
2026-06-15T09:27:05.0304297Z             {
2026-06-15T09:27:05.0304439Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T09:27:05.0304541Z               "line": 418
2026-06-15T09:27:05.0304640Z             },
2026-06-15T09:27:05.0304745Z             {
2026-06-15T09:27:05.0304884Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T09:27:05.0304997Z               "line": 442
2026-06-15T09:27:05.0305097Z             }
2026-06-15T09:27:05.0305199Z           ]
2026-06-15T09:27:05.0305298Z         }
2026-06-15T09:27:05.0305406Z       }
2026-06-15T09:27:05.0305507Z     },
2026-06-15T09:27:05.0305608Z     {
2026-06-15T09:27:05.0305749Z       "id": "REQ-HAZARD-GEN-START-NOW",
2026-06-15T09:27:05.0305921Z       "title": "gen_start = now() on cold-start and handoff (2.4)",
2026-06-15T09:27:05.0306040Z       "requiredStages": [
2026-06-15T09:27:05.0306141Z         "impl",
2026-06-15T09:27:05.0306250Z         "int"
2026-06-15T09:27:05.0306350Z       ],
2026-06-15T09:27:05.0306461Z       "stages": {
2026-06-15T09:27:05.0309485Z         "doc": {
2026-06-15T09:27:05.0309633Z           "complete": false,
2026-06-15T09:27:05.0309747Z           "evidence": []
2026-06-15T09:27:05.0309847Z         },
2026-06-15T09:27:05.0309948Z         "impl": {
2026-06-15T09:27:05.0310072Z           "complete": true,
2026-06-15T09:27:05.0310176Z           "evidence": [
2026-06-15T09:27:05.0310278Z             {
2026-06-15T09:27:05.0310428Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T09:27:05.0310546Z               "line": 22
2026-06-15T09:27:05.0310642Z             }
2026-06-15T09:27:05.0310741Z           ]
2026-06-15T09:27:05.0310840Z         },
2026-06-15T09:27:05.0310935Z         "int": {
2026-06-15T09:27:05.0311051Z           "complete": true,
2026-06-15T09:27:05.0311160Z           "evidence": [
2026-06-15T09:27:05.0311255Z             {
2026-06-15T09:27:05.0311417Z               "path": "crates/spt-daemon/tests/handoff.rs",
2026-06-15T09:27:05.0311536Z               "line": 18
2026-06-15T09:27:05.0311642Z             }
2026-06-15T09:27:05.0311742Z           ]
2026-06-15T09:27:05.0311846Z         },
2026-06-15T09:27:05.0311952Z         "unit": {
2026-06-15T09:27:05.0312066Z           "complete": false,
2026-06-15T09:27:05.0312166Z           "evidence": []
2026-06-15T09:27:05.0312418Z         }
2026-06-15T09:27:05.0312515Z       }
2026-06-15T09:27:05.0312610Z     },
2026-06-15T09:27:05.0312709Z     {
2026-06-15T09:27:05.0312849Z       "id": "REQ-HAZARD-GRACE-BEFORE-SIGNOFF",
2026-06-15T09:27:05.0313094Z       "title": "Grace-period wait completes before composing INIT_SIGNOFF (1.1)",
2026-06-15T09:27:05.0313224Z       "requiredStages": [
2026-06-15T09:27:05.0313331Z         "impl",
2026-06-15T09:27:05.0313435Z         "unit"
2026-06-15T09:27:05.0313527Z       ],
2026-06-15T09:27:05.0313632Z       "stages": {
2026-06-15T09:27:05.0313731Z         "doc": {
2026-06-15T09:27:05.0313847Z           "complete": false,
2026-06-15T09:27:05.0314079Z           "evidence": []
2026-06-15T09:27:05.0314185Z         },
2026-06-15T09:27:05.0314304Z         "impl": {
2026-06-15T09:27:05.0314423Z           "complete": true,
2026-06-15T09:27:05.0314528Z           "evidence": [
2026-06-15T09:27:05.0314633Z             {
2026-06-15T09:27:05.0314796Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:27:05.0314919Z               "line": 415
2026-06-15T09:27:05.0315023Z             },
2026-06-15T09:27:05.0315134Z             {
2026-06-15T09:27:05.0315276Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T09:27:05.0315387Z               "line": 27
2026-06-15T09:27:05.0315482Z             }
2026-06-15T09:27:05.0315581Z           ]
2026-06-15T09:27:05.0315682Z         },
2026-06-15T09:27:05.0315783Z         "int": {
2026-06-15T09:27:05.0315900Z           "complete": false,
2026-06-15T09:27:05.0316004Z           "evidence": []
2026-06-15T09:27:05.0316110Z         },
2026-06-15T09:27:05.0316210Z         "unit": {
2026-06-15T09:27:05.0316343Z           "complete": true,
2026-06-15T09:27:05.0316440Z           "evidence": [
2026-06-15T09:27:05.0316549Z             {
2026-06-15T09:27:05.0316702Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:27:05.0316816Z               "line": 940
2026-06-15T09:27:05.0316924Z             },
2026-06-15T09:27:05.0317031Z             {
2026-06-15T09:27:05.0317183Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T09:27:05.0317292Z               "line": 181
2026-06-15T09:27:05.0317393Z             }
2026-06-15T09:27:05.0317487Z           ]
2026-06-15T09:27:05.0317592Z         }
2026-06-15T09:27:05.0317689Z       }
2026-06-15T09:27:05.0317793Z     },
2026-06-15T09:27:05.0317892Z     {
2026-06-15T09:27:05.0318028Z       "id": "REQ-HAZARD-HANDOFF-ARGV-COMPAT",
2026-06-15T09:27:05.0318216Z       "title": "Broker/brain IPC + handoff argv version-tolerant (2.3)",
2026-06-15T09:27:05.0318335Z       "requiredStages": [
2026-06-15T09:27:05.0318444Z         "impl",
2026-06-15T09:27:05.0318552Z         "unit"
2026-06-15T09:27:05.0318653Z       ],
2026-06-15T09:27:05.0318759Z       "stages": {
2026-06-15T09:27:05.0318857Z         "doc": {
2026-06-15T09:27:05.0319044Z           "complete": false,
2026-06-15T09:27:05.0319148Z           "evidence": []
2026-06-15T09:27:05.0319254Z         },
2026-06-15T09:27:05.0319358Z         "impl": {
2026-06-15T09:27:05.0319472Z           "complete": true,
2026-06-15T09:27:05.0319574Z           "evidence": [
2026-06-15T09:27:05.0319669Z             {
2026-06-15T09:27:05.0319820Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:27:05.0319926Z               "line": 73
2026-06-15T09:27:05.0320030Z             },
2026-06-15T09:27:05.0320130Z             {
2026-06-15T09:27:05.0320280Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:27:05.0320383Z               "line": 941
2026-06-15T09:27:05.0320484Z             },
2026-06-15T09:27:05.0320590Z             {
2026-06-15T09:27:05.0320732Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T09:27:05.0320842Z               "line": 20
2026-06-15T09:27:05.0320947Z             },
2026-06-15T09:27:05.0321045Z             {
2026-06-15T09:27:05.0321193Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T09:27:05.0321292Z               "line": 100
2026-06-15T09:27:05.0321487Z             },
2026-06-15T09:27:05.0321592Z             {
2026-06-15T09:27:05.0321739Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T09:27:05.0321850Z               "line": 555
2026-06-15T09:27:05.0321978Z             },
2026-06-15T09:27:05.0322082Z             {
2026-06-15T09:27:05.0322235Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-15T09:27:05.0322349Z               "line": 68
2026-06-15T09:27:05.0322445Z             },
2026-06-15T09:27:05.0322545Z             {
2026-06-15T09:27:05.0322693Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-15T09:27:05.0322794Z               "line": 80
2026-06-15T09:27:05.0322978Z             }
2026-06-15T09:27:05.0323080Z           ]
2026-06-15T09:27:05.0323180Z         },
2026-06-15T09:27:05.0323279Z         "int": {
2026-06-15T09:27:05.0323395Z           "complete": true,
2026-06-15T09:27:05.0323509Z           "evidence": [
2026-06-15T09:27:05.0323603Z             {
2026-06-15T09:27:05.0323750Z               "path": "crates/spt/tests/n1_pairing.rs",
2026-06-15T09:27:05.0323849Z               "line": 44
2026-06-15T09:27:05.0323948Z             }
2026-06-15T09:27:05.0324048Z           ]
2026-06-15T09:27:05.0324149Z         },
2026-06-15T09:27:05.0324249Z         "unit": {
2026-06-15T09:27:05.0324368Z           "complete": true,
2026-06-15T09:27:05.0324473Z           "evidence": [
2026-06-15T09:27:05.0324572Z             {
2026-06-15T09:27:05.0324736Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:27:05.0324836Z               "line": 1141
2026-06-15T09:27:05.0324940Z             },
2026-06-15T09:27:05.0325036Z             {
2026-06-15T09:27:05.0325198Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:27:05.0325302Z               "line": 1157
2026-06-15T09:27:05.0325403Z             },
2026-06-15T09:27:05.0325507Z             {
2026-06-15T09:27:05.0325651Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:27:05.0325769Z               "line": 1488
2026-06-15T09:27:05.0325865Z             },
2026-06-15T09:27:05.0325966Z             {
2026-06-15T09:27:05.0326108Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T09:27:05.0326223Z               "line": 152
2026-06-15T09:27:05.0326329Z             },
2026-06-15T09:27:05.0326432Z             {
2026-06-15T09:27:05.0326574Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T09:27:05.0326685Z               "line": 175
2026-06-15T09:27:05.0326784Z             },
2026-06-15T09:27:05.0326884Z             {
2026-06-15T09:27:05.0327014Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T09:27:05.0327127Z               "line": 186
2026-06-15T09:27:05.0327228Z             },
2026-06-15T09:27:05.0327333Z             {
2026-06-15T09:27:05.0327471Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T09:27:05.0327581Z               "line": 202
2026-06-15T09:27:05.0327676Z             },
2026-06-15T09:27:05.0327781Z             {
2026-06-15T09:27:05.0327930Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T09:27:05.0328029Z               "line": 216
2026-06-15T09:27:05.0328133Z             },
2026-06-15T09:27:05.0328231Z             {
2026-06-15T09:27:05.0328377Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-15T09:27:05.0328487Z               "line": 137
2026-06-15T09:27:05.0328583Z             },
2026-06-15T09:27:05.0328687Z             {
2026-06-15T09:27:05.0328805Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0328919Z               "line": 6587
2026-06-15T09:27:05.0329098Z             },
2026-06-15T09:27:05.0329203Z             {
2026-06-15T09:27:05.0329356Z               "path": "crates/spt/tests/n1_compat.rs",
2026-06-15T09:27:05.0329451Z               "line": 30
2026-06-15T09:27:05.0329557Z             },
2026-06-15T09:27:05.0329642Z             {
2026-06-15T09:27:05.0329785Z               "path": "crates/spt/tests/n1_compat.rs",
2026-06-15T09:27:05.0329896Z               "line": 73
2026-06-15T09:27:05.0330090Z             }
2026-06-15T09:27:05.0330191Z           ]
2026-06-15T09:27:05.0330291Z         }
2026-06-15T09:27:05.0330395Z       }
2026-06-15T09:27:05.0330496Z     },
2026-06-15T09:27:05.0330595Z     {
2026-06-15T09:27:05.0330719Z       "id": "REQ-HAZARD-ID-CHARSET",
2026-06-15T09:27:05.0331015Z       "title": "Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)",
2026-06-15T09:27:05.0331136Z       "requiredStages": [
2026-06-15T09:27:05.0331239Z         "impl",
2026-06-15T09:27:05.0331339Z         "unit"
2026-06-15T09:27:05.0331441Z       ],
2026-06-15T09:27:05.0331549Z       "stages": {
2026-06-15T09:27:05.0331748Z         "doc": {
2026-06-15T09:27:05.0331862Z           "complete": true,
2026-06-15T09:27:05.0331970Z           "evidence": [
2026-06-15T09:27:05.0332066Z             {
2026-06-15T09:27:05.0332200Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T09:27:05.0332304Z               "line": 133
2026-06-15T09:27:05.0332410Z             }
2026-06-15T09:27:05.0332510Z           ]
2026-06-15T09:27:05.0332618Z         },
2026-06-15T09:27:05.0332724Z         "impl": {
2026-06-15T09:27:05.0332829Z           "complete": true,
2026-06-15T09:27:05.0332933Z           "evidence": [
2026-06-15T09:27:05.0333034Z             {
2026-06-15T09:27:05.0333177Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T09:27:05.0333277Z               "line": 65
2026-06-15T09:27:05.0333378Z             },
2026-06-15T09:27:05.0333481Z             {
2026-06-15T09:27:05.0333610Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T09:27:05.0333712Z               "line": 17
2026-06-15T09:27:05.0333824Z             },
2026-06-15T09:27:05.0333916Z             {
2026-06-15T09:27:05.0334064Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T09:27:05.0334167Z               "line": 146
2026-06-15T09:27:05.0334272Z             },
2026-06-15T09:27:05.0334372Z             {
2026-06-15T09:27:05.0334513Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:27:05.0334623Z               "line": 249
2026-06-15T09:27:05.0334729Z             },
2026-06-15T09:27:05.0334813Z             {
2026-06-15T09:27:05.0334947Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:27:05.0335057Z               "line": 362
2026-06-15T09:27:05.0335156Z             },
2026-06-15T09:27:05.0335262Z             {
2026-06-15T09:27:05.0335396Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T09:27:05.0335509Z               "line": 32
2026-06-15T09:27:05.0335611Z             },
2026-06-15T09:27:05.0335715Z             {
2026-06-15T09:27:05.0335848Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0335963Z               "line": 1171
2026-06-15T09:27:05.0336068Z             },
2026-06-15T09:27:05.0336167Z             {
2026-06-15T09:27:05.0336297Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0336406Z               "line": 5295
2026-06-15T09:27:05.0336507Z             },
2026-06-15T09:27:05.0336621Z             {
2026-06-15T09:27:05.0336745Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0336860Z               "line": 5577
2026-06-15T09:27:05.0336959Z             }
2026-06-15T09:27:05.0337063Z           ]
2026-06-15T09:27:05.0337163Z         },
2026-06-15T09:27:05.0337269Z         "int": {
2026-06-15T09:27:05.0337392Z           "complete": false,
2026-06-15T09:27:05.0337497Z           "evidence": []
2026-06-15T09:27:05.0337598Z         },
2026-06-15T09:27:05.0337697Z         "unit": {
2026-06-15T09:27:05.0337807Z           "complete": true,
2026-06-15T09:27:05.0337917Z           "evidence": [
2026-06-15T09:27:05.0338026Z             {
2026-06-15T09:27:05.0338161Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T09:27:05.0338265Z               "line": 94
2026-06-15T09:27:05.0338365Z             },
2026-06-15T09:27:05.0338461Z             {
2026-06-15T09:27:05.0338599Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T09:27:05.0338766Z               "line": 111
2026-06-15T09:27:05.0338871Z             },
2026-06-15T09:27:05.0339042Z             {
2026-06-15T09:27:05.0339167Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T09:27:05.0339280Z               "line": 124
2026-06-15T09:27:05.0339374Z             },
2026-06-15T09:27:05.0339474Z             {
2026-06-15T09:27:05.0339606Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T09:27:05.0339715Z               "line": 134
2026-06-15T09:27:05.0339817Z             },
2026-06-15T09:27:05.0339911Z             {
2026-06-15T09:27:05.0340039Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T09:27:05.0340136Z               "line": 144
2026-06-15T09:27:05.0340345Z             },
2026-06-15T09:27:05.0340446Z             {
2026-06-15T09:27:05.0340564Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T09:27:05.0340669Z               "line": 156
2026-06-15T09:27:05.0340770Z             },
2026-06-15T09:27:05.0340874Z             {
2026-06-15T09:27:05.0341028Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:27:05.0341132Z               "line": 746
2026-06-15T09:27:05.0341232Z             },
2026-06-15T09:27:05.0341333Z             {
2026-06-15T09:27:05.0341475Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T09:27:05.0341580Z               "line": 309
2026-06-15T09:27:05.0341677Z             }
2026-06-15T09:27:05.0341780Z           ]
2026-06-15T09:27:05.0341876Z         }
2026-06-15T09:27:05.0341972Z       }
2026-06-15T09:27:05.0342072Z     },
2026-06-15T09:27:05.0342170Z     {
2026-06-15T09:27:05.0342304Z       "id": "REQ-HAZARD-INBOX-NO-DOUBLE",
2026-06-15T09:27:05.0342469Z       "title": "No double-delivery via legacy inbox (4.5)",
2026-06-15T09:27:05.0342582Z       "requiredStages": [
2026-06-15T09:27:05.0342689Z         "impl",
2026-06-15T09:27:05.0342793Z         "unit"
2026-06-15T09:27:05.0342893Z       ],
2026-06-15T09:27:05.0342994Z       "stages": {
2026-06-15T09:27:05.0343089Z         "doc": {
2026-06-15T09:27:05.0343212Z           "complete": false,
2026-06-15T09:27:05.0343318Z           "evidence": []
2026-06-15T09:27:05.0343427Z         },
2026-06-15T09:27:05.0343527Z         "impl": {
2026-06-15T09:27:05.0343637Z           "complete": true,
2026-06-15T09:27:05.0343747Z           "evidence": [
2026-06-15T09:27:05.0343842Z             {
2026-06-15T09:27:05.0343986Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T09:27:05.0344085Z               "line": 128
2026-06-15T09:27:05.0344185Z             }
2026-06-15T09:27:05.0344291Z           ]
2026-06-15T09:27:05.0344384Z         },
2026-06-15T09:27:05.0344481Z         "int": {
2026-06-15T09:27:05.0344601Z           "complete": false,
2026-06-15T09:27:05.0344704Z           "evidence": []
2026-06-15T09:27:05.0344803Z         },
2026-06-15T09:27:05.0344909Z         "unit": {
2026-06-15T09:27:05.0345012Z           "complete": true,
2026-06-15T09:27:05.0345116Z           "evidence": [
2026-06-15T09:27:05.0345216Z             {
2026-06-15T09:27:05.0345359Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T09:27:05.0345464Z               "line": 205
2026-06-15T09:27:05.0345570Z             }
2026-06-15T09:27:05.0345669Z           ]
2026-06-15T09:27:05.0345778Z         }
2026-06-15T09:27:05.0345885Z       }
2026-06-15T09:27:05.0345984Z     },
2026-06-15T09:27:05.0346084Z     {
2026-06-15T09:27:05.0346223Z       "id": "REQ-HAZARD-INFO-JSON-TORN-READ",
2026-06-15T09:27:05.0346404Z       "title": "State-file reads tolerate concurrent writes (1.2)",
2026-06-15T09:27:05.0346519Z       "requiredStages": [
2026-06-15T09:27:05.0346624Z         "impl",
2026-06-15T09:27:05.0346728Z         "unit"
2026-06-15T09:27:05.0346829Z       ],
2026-06-15T09:27:05.0346932Z       "stages": {
2026-06-15T09:27:05.0347033Z         "doc": {
2026-06-15T09:27:05.0347154Z           "complete": false,
2026-06-15T09:27:05.0347261Z           "evidence": []
2026-06-15T09:27:05.0347367Z         },
2026-06-15T09:27:05.0347464Z         "impl": {
2026-06-15T09:27:05.0347689Z           "complete": true,
2026-06-15T09:27:05.0347805Z           "evidence": [
2026-06-15T09:27:05.0347900Z             {
2026-06-15T09:27:05.0348043Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T09:27:05.0348139Z               "line": 272
2026-06-15T09:27:05.0348243Z             },
2026-06-15T09:27:05.0348343Z             {
2026-06-15T09:27:05.0348482Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T09:27:05.0348586Z               "line": 283
2026-06-15T09:27:05.0348682Z             },
2026-06-15T09:27:05.0348787Z             {
2026-06-15T09:27:05.0348910Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T09:27:05.0349192Z               "line": 301
2026-06-15T09:27:05.0349292Z             }
2026-06-15T09:27:05.0349393Z           ]
2026-06-15T09:27:05.0349497Z         },
2026-06-15T09:27:05.0349593Z         "int": {
2026-06-15T09:27:05.0349718Z           "complete": false,
2026-06-15T09:27:05.0349821Z           "evidence": []
2026-06-15T09:27:05.0349925Z         },
2026-06-15T09:27:05.0350030Z         "unit": {
2026-06-15T09:27:05.0350128Z           "complete": true,
2026-06-15T09:27:05.0350242Z           "evidence": [
2026-06-15T09:27:05.0350343Z             {
2026-06-15T09:27:05.0350476Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T09:27:05.0350571Z               "line": 325
2026-06-15T09:27:05.0350667Z             },
2026-06-15T09:27:05.0350767Z             {
2026-06-15T09:27:05.0350895Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T09:27:05.0351006Z               "line": 346
2026-06-15T09:27:05.0351105Z             },
2026-06-15T09:27:05.0351205Z             {
2026-06-15T09:27:05.0351339Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T09:27:05.0351449Z               "line": 574
2026-06-15T09:27:05.0351554Z             },
2026-06-15T09:27:05.0351654Z             {
2026-06-15T09:27:05.0351792Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T09:27:05.0351893Z               "line": 585
2026-06-15T09:27:05.0352002Z             },
2026-06-15T09:27:05.0352102Z             {
2026-06-15T09:27:05.0352242Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T09:27:05.0352345Z               "line": 598
2026-06-15T09:27:05.0352446Z             }
2026-06-15T09:27:05.0352547Z           ]
2026-06-15T09:27:05.0352641Z         }
2026-06-15T09:27:05.0352745Z       }
2026-06-15T09:27:05.0352845Z     },
2026-06-15T09:27:05.0352940Z     {
2026-06-15T09:27:05.0353076Z       "id": "REQ-HAZARD-INSTANT-UNDERFLOW",
2026-06-15T09:27:05.0353729Z       "title": "Scheduling never subtracts a Duration from Instant::now() (underflow-panics on a host booted more recently than the offset); 'due now / never run' is Option<Instant>=None gated on forward duration_since only (5.9)",
2026-06-15T09:27:05.0353859Z       "requiredStages": [
2026-06-15T09:27:05.0353959Z         "impl",
2026-06-15T09:27:05.0354072Z         "unit"
2026-06-15T09:27:05.0354164Z       ],
2026-06-15T09:27:05.0354268Z       "stages": {
2026-06-15T09:27:05.0354377Z         "doc": {
2026-06-15T09:27:05.0354479Z           "complete": false,
2026-06-15T09:27:05.0354597Z           "evidence": []
2026-06-15T09:27:05.0354702Z         },
2026-06-15T09:27:05.0354808Z         "impl": {
2026-06-15T09:27:05.0354926Z           "complete": true,
2026-06-15T09:27:05.0355021Z           "evidence": [
2026-06-15T09:27:05.0355123Z             {
2026-06-15T09:27:05.0355278Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:27:05.0355387Z               "line": 759
2026-06-15T09:27:05.0355488Z             }
2026-06-15T09:27:05.0355595Z           ]
2026-06-15T09:27:05.0355695Z         },
2026-06-15T09:27:05.0355796Z         "int": {
2026-06-15T09:27:05.0355910Z           "complete": false,
2026-06-15T09:27:05.0356015Z           "evidence": []
2026-06-15T09:27:05.0356116Z         },
2026-06-15T09:27:05.0356211Z         "unit": {
2026-06-15T09:27:05.0356325Z           "complete": true,
2026-06-15T09:27:05.0356431Z           "evidence": [
2026-06-15T09:27:05.0356625Z             {
2026-06-15T09:27:05.0356778Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:27:05.0356888Z               "line": 873
2026-06-15T09:27:05.0356997Z             }
2026-06-15T09:27:05.0357093Z           ]
2026-06-15T09:27:05.0357203Z         }
2026-06-15T09:27:05.0357302Z       }
2026-06-15T09:27:05.0357399Z     },
2026-06-15T09:27:05.0357502Z     {
2026-06-15T09:27:05.0357622Z       "id": "REQ-HAZARD-LOCAL-API-AUTH",
2026-06-15T09:27:05.0357879Z       "title": "Every local `api` mutation authenticated to an endpoint/session (codex #13)",
2026-06-15T09:27:05.0357990Z       "requiredStages": [
2026-06-15T09:27:05.0358174Z         "impl",
2026-06-15T09:27:05.0358284Z         "unit"
2026-06-15T09:27:05.0358384Z       ],
2026-06-15T09:27:05.0358479Z       "stages": {
2026-06-15T09:27:05.0358574Z         "doc": {
2026-06-15T09:27:05.0358689Z           "complete": false,
2026-06-15T09:27:05.0358803Z           "evidence": []
2026-06-15T09:27:05.0358908Z         },
2026-06-15T09:27:05.0359104Z         "impl": {
2026-06-15T09:27:05.0359213Z           "complete": true,
2026-06-15T09:27:05.0359329Z           "evidence": [
2026-06-15T09:27:05.0359424Z             {
2026-06-15T09:27:05.0359562Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T09:27:05.0359667Z               "line": 14
2026-06-15T09:27:05.0359771Z             },
2026-06-15T09:27:05.0359867Z             {
2026-06-15T09:27:05.0359996Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T09:27:05.0360109Z               "line": 449
2026-06-15T09:27:05.0360211Z             }
2026-06-15T09:27:05.0360315Z           ]
2026-06-15T09:27:05.0360424Z         },
2026-06-15T09:27:05.0360524Z         "int": {
2026-06-15T09:27:05.0360637Z           "complete": false,
2026-06-15T09:27:05.0360741Z           "evidence": []
2026-06-15T09:27:05.0360846Z         },
2026-06-15T09:27:05.0360951Z         "unit": {
2026-06-15T09:27:05.0361065Z           "complete": true,
2026-06-15T09:27:05.0361165Z           "evidence": [
2026-06-15T09:27:05.0361266Z             {
2026-06-15T09:27:05.0361403Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T09:27:05.0361504Z               "line": 130
2026-06-15T09:27:05.0361609Z             },
2026-06-15T09:27:05.0361703Z             {
2026-06-15T09:27:05.0361843Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T09:27:05.0361943Z               "line": 138
2026-06-15T09:27:05.0362052Z             },
2026-06-15T09:27:05.0362148Z             {
2026-06-15T09:27:05.0362281Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T09:27:05.0362395Z               "line": 146
2026-06-15T09:27:05.0362492Z             },
2026-06-15T09:27:05.0362595Z             {
2026-06-15T09:27:05.0362719Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T09:27:05.0362830Z               "line": 154
2026-06-15T09:27:05.0362934Z             },
2026-06-15T09:27:05.0363034Z             {
2026-06-15T09:27:05.0363164Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T09:27:05.0363272Z               "line": 162
2026-06-15T09:27:05.0363376Z             },
2026-06-15T09:27:05.0363481Z             {
2026-06-15T09:27:05.0363608Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T09:27:05.0363722Z               "line": 170
2026-06-15T09:27:05.0363823Z             }
2026-06-15T09:27:05.0363932Z           ]
2026-06-15T09:27:05.0364027Z         }
2026-06-15T09:27:05.0364128Z       }
2026-06-15T09:27:05.0364228Z     },
2026-06-15T09:27:05.0364332Z     {
2026-06-15T09:27:05.0364471Z       "id": "REQ-HAZARD-PAIR-RATE-LIMIT",
2026-06-15T09:27:05.0365472Z       "title": "Subnet-global pairing rate limit: one active ceremony per subnet, shared attempt counter, exponential backoff — a public pre-trust relay + multiple seed-holders otherwise enables distributed SPAKE2 guessing (and ±1 TOTP window triples the valid-password space) (ADR-0005 #11)",
2026-06-15T09:27:05.0365596Z       "requiredStages": [
2026-06-15T09:27:05.0365702Z         "impl",
2026-06-15T09:27:05.0365914Z         "unit"
2026-06-15T09:27:05.0366019Z       ],
2026-06-15T09:27:05.0366118Z       "stages": {
2026-06-15T09:27:05.0366222Z         "doc": {
2026-06-15T09:27:05.0366337Z           "complete": false,
2026-06-15T09:27:05.0366452Z           "evidence": []
2026-06-15T09:27:05.0366551Z         },
2026-06-15T09:27:05.0366662Z         "impl": {
2026-06-15T09:27:05.0366776Z           "complete": true,
2026-06-15T09:27:05.0366885Z           "evidence": [
2026-06-15T09:27:05.0366986Z             {
2026-06-15T09:27:05.0367156Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T09:27:05.0367263Z               "line": 34
2026-06-15T09:27:05.0367471Z             }
2026-06-15T09:27:05.0367572Z           ]
2026-06-15T09:27:05.0367677Z         },
2026-06-15T09:27:05.0367777Z         "int": {
2026-06-15T09:27:05.0367897Z           "complete": false,
2026-06-15T09:27:05.0368001Z           "evidence": []
2026-06-15T09:27:05.0368101Z         },
2026-06-15T09:27:05.0368212Z         "unit": {
2026-06-15T09:27:05.0368330Z           "complete": true,
2026-06-15T09:27:05.0368439Z           "evidence": [
2026-06-15T09:27:05.0368541Z             {
2026-06-15T09:27:05.0368710Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T09:27:05.0368815Z               "line": 188
2026-06-15T09:27:05.0368921Z             },
2026-06-15T09:27:05.0369096Z             {
2026-06-15T09:27:05.0369259Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T09:27:05.0369373Z               "line": 200
2026-06-15T09:27:05.0369473Z             },
2026-06-15T09:27:05.0369579Z             {
2026-06-15T09:27:05.0369759Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T09:27:05.0369870Z               "line": 211
2026-06-15T09:27:05.0369964Z             },
2026-06-15T09:27:05.0370064Z             {
2026-06-15T09:27:05.0370223Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T09:27:05.0370336Z               "line": 253
2026-06-15T09:27:05.0370437Z             },
2026-06-15T09:27:05.0370537Z             {
2026-06-15T09:27:05.0370708Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T09:27:05.0370819Z               "line": 277
2026-06-15T09:27:05.0370917Z             },
2026-06-15T09:27:05.0371022Z             {
2026-06-15T09:27:05.0371179Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T09:27:05.0371286Z               "line": 300
2026-06-15T09:27:05.0371386Z             },
2026-06-15T09:27:05.0371487Z             {
2026-06-15T09:27:05.0371658Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T09:27:05.0371763Z               "line": 316
2026-06-15T09:27:05.0371864Z             }
2026-06-15T09:27:05.0371963Z           ]
2026-06-15T09:27:05.0372064Z         }
2026-06-15T09:27:05.0372169Z       }
2026-06-15T09:27:05.0372268Z     },
2026-06-15T09:27:05.0372370Z     {
2026-06-15T09:27:05.0372507Z       "id": "REQ-HAZARD-PAIR-SEED-ROTATION",
2026-06-15T09:27:05.0373094Z       "title": "Removing a node rotates the subnet seed (epoch bump) so an old node/old seed cannot rejoin; trust-store delete alone is NOT revocation because the seed is replicated to every trusted node (ADR-0005 #10)",
2026-06-15T09:27:05.0373208Z       "requiredStages": [
2026-06-15T09:27:05.0373304Z         "impl",
2026-06-15T09:27:05.0373405Z         "unit"
2026-06-15T09:27:05.0373498Z       ],
2026-06-15T09:27:05.0373604Z       "stages": {
2026-06-15T09:27:05.0373710Z         "doc": {
2026-06-15T09:27:05.0373818Z           "complete": false,
2026-06-15T09:27:05.0373926Z           "evidence": []
2026-06-15T09:27:05.0374042Z         },
2026-06-15T09:27:05.0374149Z         "impl": {
2026-06-15T09:27:05.0374263Z           "complete": true,
2026-06-15T09:27:05.0374374Z           "evidence": [
2026-06-15T09:27:05.0374473Z             {
2026-06-15T09:27:05.0374621Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T09:27:05.0374830Z               "line": 29
2026-06-15T09:27:05.0374926Z             },
2026-06-15T09:27:05.0375031Z             {
2026-06-15T09:27:05.0375164Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T09:27:05.0375275Z               "line": 174
2026-06-15T09:27:05.0375379Z             },
2026-06-15T09:27:05.0375479Z             {
2026-06-15T09:27:05.0375619Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T09:27:05.0375741Z               "line": 194
2026-06-15T09:27:05.0375836Z             },
2026-06-15T09:27:05.0375938Z             {
2026-06-15T09:27:05.0376084Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T09:27:05.0376191Z               "line": 222
2026-06-15T09:27:05.0376455Z             }
2026-06-15T09:27:05.0376556Z           ]
2026-06-15T09:27:05.0376659Z         },
2026-06-15T09:27:05.0376767Z         "int": {
2026-06-15T09:27:05.0376883Z           "complete": false,
2026-06-15T09:27:05.0376988Z           "evidence": []
2026-06-15T09:27:05.0377092Z         },
2026-06-15T09:27:05.0377236Z         "unit": {
2026-06-15T09:27:05.0377345Z           "complete": true,
2026-06-15T09:27:05.0377459Z           "evidence": [
2026-06-15T09:27:05.0377560Z             {
2026-06-15T09:27:05.0377707Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T09:27:05.0377808Z               "line": 329
2026-06-15T09:27:05.0377913Z             },
2026-06-15T09:27:05.0378017Z             {
2026-06-15T09:27:05.0378152Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T09:27:05.0378256Z               "line": 344
2026-06-15T09:27:05.0378356Z             },
2026-06-15T09:27:05.0378457Z             {
2026-06-15T09:27:05.0378604Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T09:27:05.0378704Z               "line": 417
2026-06-15T09:27:05.0378805Z             },
2026-06-15T09:27:05.0378904Z             {
2026-06-15T09:27:05.0379120Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T09:27:05.0379233Z               "line": 433
2026-06-15T09:27:05.0379341Z             },
2026-06-15T09:27:05.0379442Z             {
2026-06-15T09:27:05.0379585Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T09:27:05.0379690Z               "line": 492
2026-06-15T09:27:05.0379791Z             },
2026-06-15T09:27:05.0379891Z             {
2026-06-15T09:27:05.0380028Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T09:27:05.0380130Z               "line": 506
2026-06-15T09:27:05.0380229Z             },
2026-06-15T09:27:05.0380329Z             {
2026-06-15T09:27:05.0380473Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T09:27:05.0380572Z               "line": 517
2026-06-15T09:27:05.0380677Z             },
2026-06-15T09:27:05.0380778Z             {
2026-06-15T09:27:05.0380915Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T09:27:05.0381031Z               "line": 528
2026-06-15T09:27:05.0381121Z             }
2026-06-15T09:27:05.0381226Z           ]
2026-06-15T09:27:05.0381331Z         }
2026-06-15T09:27:05.0381431Z       }
2026-06-15T09:27:05.0381534Z     },
2026-06-15T09:27:05.0381629Z     {
2026-06-15T09:27:05.0381781Z       "id": "REQ-HAZARD-PAIR-TRANSCRIPT-BIND",
2026-06-15T09:27:05.0382485Z       "title": "Pairing transcript binds roles, both node pubkeys, subnet ID, seed epoch, TOTP time-step, and confirmation MACs — or unknown-key-share/reflection/wrong-subnet/replay pairing remain possible (ADR-0005 #12)",
2026-06-15T09:27:05.0382600Z       "requiredStages": [
2026-06-15T09:27:05.0382701Z         "impl",
2026-06-15T09:27:05.0382805Z         "unit"
2026-06-15T09:27:05.0382905Z       ],
2026-06-15T09:27:05.0383002Z       "stages": {
2026-06-15T09:27:05.0383115Z         "doc": {
2026-06-15T09:27:05.0383229Z           "complete": false,
2026-06-15T09:27:05.0383349Z           "evidence": []
2026-06-15T09:27:05.0383449Z         },
2026-06-15T09:27:05.0383554Z         "impl": {
2026-06-15T09:27:05.0383664Z           "complete": true,
2026-06-15T09:27:05.0383768Z           "evidence": [
2026-06-15T09:27:05.0383984Z             {
2026-06-15T09:27:05.0384150Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T09:27:05.0384266Z               "line": 27
2026-06-15T09:27:05.0384368Z             },
2026-06-15T09:27:05.0384472Z             {
2026-06-15T09:27:05.0384630Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T09:27:05.0384733Z               "line": 110
2026-06-15T09:27:05.0384838Z             },
2026-06-15T09:27:05.0384934Z             {
2026-06-15T09:27:05.0385090Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T09:27:05.0385201Z               "line": 153
2026-06-15T09:27:05.0385405Z             },
2026-06-15T09:27:05.0385506Z             {
2026-06-15T09:27:05.0385663Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T09:27:05.0389269Z               "line": 182
2026-06-15T09:27:05.0389399Z             },
2026-06-15T09:27:05.0389502Z             {
2026-06-15T09:27:05.0389699Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T09:27:05.0389826Z               "line": 31
2026-06-15T09:27:05.0389921Z             },
2026-06-15T09:27:05.0390026Z             {
2026-06-15T09:27:05.0390211Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T09:27:05.0390313Z               "line": 113
2026-06-15T09:27:05.0390417Z             },
2026-06-15T09:27:05.0390517Z             {
2026-06-15T09:27:05.0390680Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T09:27:05.0390785Z               "line": 138
2026-06-15T09:27:05.0390884Z             }
2026-06-15T09:27:05.0390985Z           ]
2026-06-15T09:27:05.0391084Z         },
2026-06-15T09:27:05.0391189Z         "int": {
2026-06-15T09:27:05.0391314Z           "complete": false,
2026-06-15T09:27:05.0391428Z           "evidence": []
2026-06-15T09:27:05.0391533Z         },
2026-06-15T09:27:05.0391634Z         "unit": {
2026-06-15T09:27:05.0391751Z           "complete": true,
2026-06-15T09:27:05.0391867Z           "evidence": [
2026-06-15T09:27:05.0391968Z             {
2026-06-15T09:27:05.0392137Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T09:27:05.0392238Z               "line": 261
2026-06-15T09:27:05.0392341Z             },
2026-06-15T09:27:05.0392440Z             {
2026-06-15T09:27:05.0392598Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T09:27:05.0392698Z               "line": 276
2026-06-15T09:27:05.0392802Z             },
2026-06-15T09:27:05.0392903Z             {
2026-06-15T09:27:05.0393046Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T09:27:05.0393165Z               "line": 293
2026-06-15T09:27:05.0393266Z             },
2026-06-15T09:27:05.0393370Z             {
2026-06-15T09:27:05.0393518Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T09:27:05.0393623Z               "line": 310
2026-06-15T09:27:05.0393722Z             },
2026-06-15T09:27:05.0393829Z             {
2026-06-15T09:27:05.0393976Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T09:27:05.0394080Z               "line": 327
2026-06-15T09:27:05.0394182Z             },
2026-06-15T09:27:05.0394285Z             {
2026-06-15T09:27:05.0394434Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T09:27:05.0394535Z               "line": 366
2026-06-15T09:27:05.0394628Z             },
2026-06-15T09:27:05.0394730Z             {
2026-06-15T09:27:05.0394896Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T09:27:05.0395014Z               "line": 179
2026-06-15T09:27:05.0395114Z             },
2026-06-15T09:27:05.0395223Z             {
2026-06-15T09:27:05.0395388Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T09:27:05.0395489Z               "line": 194
2026-06-15T09:27:05.0395593Z             },
2026-06-15T09:27:05.0395688Z             {
2026-06-15T09:27:05.0395856Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T09:27:05.0396124Z               "line": 204
2026-06-15T09:27:05.0396228Z             },
2026-06-15T09:27:05.0396328Z             {
2026-06-15T09:27:05.0396494Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T09:27:05.0396604Z               "line": 259
2026-06-15T09:27:05.0396705Z             },
2026-06-15T09:27:05.0396795Z             {
2026-06-15T09:27:05.0396962Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T09:27:05.0397073Z               "line": 269
2026-06-15T09:27:05.0397166Z             },
2026-06-15T09:27:05.0397267Z             {
2026-06-15T09:27:05.0397538Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T09:27:05.0397633Z               "line": 283
2026-06-15T09:27:05.0397738Z             }
2026-06-15T09:27:05.0397836Z           ]
2026-06-15T09:27:05.0397940Z         }
2026-06-15T09:27:05.0398041Z       }
2026-06-15T09:27:05.0398141Z     },
2026-06-15T09:27:05.0398241Z     {
2026-06-15T09:27:05.0398380Z       "id": "REQ-HAZARD-PARENT-PID-PREFER",
2026-06-15T09:27:05.0398604Z       "title": "Prefer stable parent PID / broker handle over ephemeral PID (2.1)",
2026-06-15T09:27:05.0398723Z       "requiredStages": [],
2026-06-15T09:27:05.0398827Z       "stages": {
2026-06-15T09:27:05.0398928Z         "doc": {
2026-06-15T09:27:05.0399123Z           "complete": false,
2026-06-15T09:27:05.0399243Z           "evidence": []
2026-06-15T09:27:05.0399338Z         },
2026-06-15T09:27:05.0399443Z         "impl": {
2026-06-15T09:27:05.0399558Z           "complete": false,
2026-06-15T09:27:05.0399667Z           "evidence": []
2026-06-15T09:27:05.0399777Z         },
2026-06-15T09:27:05.0399878Z         "int": {
2026-06-15T09:27:05.0399991Z           "complete": false,
2026-06-15T09:27:05.0400096Z           "evidence": []
2026-06-15T09:27:05.0400197Z         },
2026-06-15T09:27:05.0400297Z         "unit": {
2026-06-15T09:27:05.0400400Z           "complete": false,
2026-06-15T09:27:05.0400524Z           "evidence": []
2026-06-15T09:27:05.0400625Z         }
2026-06-15T09:27:05.0400725Z       }
2026-06-15T09:27:05.0400824Z     },
2026-06-15T09:27:05.0400911Z     {
2026-06-15T09:27:05.0401068Z       "id": "REQ-HAZARD-PSYCHE-OUTBOUND-PROXY",
2026-06-15T09:27:05.0401993Z       "title": "Psyche outbound captured + sanitized: the live-Psyche turn driver captures stdout (never Stdio::null), and the daemon strips/re-stamps Psyche-supplied from=/target and constrains routing (reply→__REPLY_TO__ sender, notify→own user/subnet) (7.3)",
2026-06-15T09:27:05.0402113Z       "requiredStages": [
2026-06-15T09:27:05.0402217Z         "impl",
2026-06-15T09:27:05.0402321Z         "unit"
2026-06-15T09:27:05.0402422Z       ],
2026-06-15T09:27:05.0402518Z       "stages": {
2026-06-15T09:27:05.0402622Z         "doc": {
2026-06-15T09:27:05.0402721Z           "complete": false,
2026-06-15T09:27:05.0402835Z           "evidence": []
2026-06-15T09:27:05.0402934Z         },
2026-06-15T09:27:05.0403043Z         "impl": {
2026-06-15T09:27:05.0403158Z           "complete": true,
2026-06-15T09:27:05.0403258Z           "evidence": [
2026-06-15T09:27:05.0403362Z             {
2026-06-15T09:27:05.0403521Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T09:27:05.0403634Z               "line": 26
2026-06-15T09:27:05.0403735Z             },
2026-06-15T09:27:05.0403835Z             {
2026-06-15T09:27:05.0403982Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T09:27:05.0404088Z               "line": 95
2026-06-15T09:27:05.0404192Z             },
2026-06-15T09:27:05.0404297Z             {
2026-06-15T09:27:05.0404436Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T09:27:05.0404560Z               "line": 166
2026-06-15T09:27:05.0404660Z             },
2026-06-15T09:27:05.0404756Z             {
2026-06-15T09:27:05.0404903Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T09:27:05.0405004Z               "line": 19
2026-06-15T09:27:05.0405213Z             },
2026-06-15T09:27:05.0405314Z             {
2026-06-15T09:27:05.0405456Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T09:27:05.0405560Z               "line": 50
2026-06-15T09:27:05.0405660Z             },
2026-06-15T09:27:05.0405764Z             {
2026-06-15T09:27:05.0405896Z               "path": "crates/spt-live/src/turn.rs",
2026-06-15T09:27:05.0406001Z               "line": 18
2026-06-15T09:27:05.0406107Z             },
2026-06-15T09:27:05.0406210Z             {
2026-06-15T09:27:05.0406345Z               "path": "crates/spt-live/src/turn.rs",
2026-06-15T09:27:05.0406441Z               "line": 71
2026-06-15T09:27:05.0406530Z             },
2026-06-15T09:27:05.0406735Z             {
2026-06-15T09:27:05.0406873Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:27:05.0406974Z               "line": 79
2026-06-15T09:27:05.0407073Z             }
2026-06-15T09:27:05.0407174Z           ]
2026-06-15T09:27:05.0407275Z         },
2026-06-15T09:27:05.0407384Z         "int": {
2026-06-15T09:27:05.0407498Z           "complete": false,
2026-06-15T09:27:05.0407599Z           "evidence": []
2026-06-15T09:27:05.0407699Z         },
2026-06-15T09:27:05.0407803Z         "unit": {
2026-06-15T09:27:05.0407914Z           "complete": true,
2026-06-15T09:27:05.0408023Z           "evidence": [
2026-06-15T09:27:05.0408122Z             {
2026-06-15T09:27:05.0408265Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T09:27:05.0408368Z               "line": 289
2026-06-15T09:27:05.0408477Z             },
2026-06-15T09:27:05.0408577Z             {
2026-06-15T09:27:05.0408715Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T09:27:05.0408839Z               "line": 314
2026-06-15T09:27:05.0409030Z             },
2026-06-15T09:27:05.0409130Z             {
2026-06-15T09:27:05.0409288Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T09:27:05.0409392Z               "line": 350
2026-06-15T09:27:05.0409494Z             },
2026-06-15T09:27:05.0409598Z             {
2026-06-15T09:27:05.0409741Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T09:27:05.0409842Z               "line": 418
2026-06-15T09:27:05.0409945Z             },
2026-06-15T09:27:05.0410041Z             {
2026-06-15T09:27:05.0410190Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T09:27:05.0410288Z               "line": 429
2026-06-15T09:27:05.0410389Z             },
2026-06-15T09:27:05.0410486Z             {
2026-06-15T09:27:05.0410622Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T09:27:05.0410723Z               "line": 460
2026-06-15T09:27:05.0410825Z             },
2026-06-15T09:27:05.0410932Z             {
2026-06-15T09:27:05.0411075Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T09:27:05.0411176Z               "line": 471
2026-06-15T09:27:05.0411280Z             },
2026-06-15T09:27:05.0411380Z             {
2026-06-15T09:27:05.0411519Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T09:27:05.0411623Z               "line": 77
2026-06-15T09:27:05.0411724Z             },
2026-06-15T09:27:05.0411814Z             {
2026-06-15T09:27:05.0411952Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T09:27:05.0412057Z               "line": 97
2026-06-15T09:27:05.0412153Z             },
2026-06-15T09:27:05.0412252Z             {
2026-06-15T09:27:05.0412397Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T09:27:05.0412500Z               "line": 112
2026-06-15T09:27:05.0412596Z             },
2026-06-15T09:27:05.0412697Z             {
2026-06-15T09:27:05.0412839Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T09:27:05.0412953Z               "line": 123
2026-06-15T09:27:05.0413051Z             },
2026-06-15T09:27:05.0413144Z             {
2026-06-15T09:27:05.0413277Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T09:27:05.0413377Z               "line": 130
2026-06-15T09:27:05.0413480Z             },
2026-06-15T09:27:05.0413680Z             {
2026-06-15T09:27:05.0413823Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T09:27:05.0413922Z               "line": 145
2026-06-15T09:27:05.0414023Z             },
2026-06-15T09:27:05.0414123Z             {
2026-06-15T09:27:05.0414266Z               "path": "crates/spt-live/src/turn.rs",
2026-06-15T09:27:05.0414372Z               "line": 115
2026-06-15T09:27:05.0414466Z             },
2026-06-15T09:27:05.0414566Z             {
2026-06-15T09:27:05.0414705Z               "path": "crates/spt-live/src/turn.rs",
2026-06-15T09:27:05.0414815Z               "line": 130
2026-06-15T09:27:05.0414915Z             },
2026-06-15T09:27:05.0415129Z             {
2026-06-15T09:27:05.0415274Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:27:05.0415377Z               "line": 420
2026-06-15T09:27:05.0415477Z             }
2026-06-15T09:27:05.0415584Z           ]
2026-06-15T09:27:05.0415683Z         }
2026-06-15T09:27:05.0415778Z       }
2026-06-15T09:27:05.0415879Z     },
2026-06-15T09:27:05.0415979Z     {
2026-06-15T09:27:05.0416115Z       "id": "REQ-HAZARD-PUMP-IPC-DEADLINE",
2026-06-15T09:27:05.0417015Z       "title": "The single-threaded peer pump's brain-IPC reads are deadline-bounded (PUMP_PEER_IO_TIMEOUT, total-wait per call); a TimedOut read POISONS the client and escalates to a SUPERVISED RESTART, never a per-peer retry — a black-holed peer must never wedge the whole pump",
2026-06-15T09:27:05.0417123Z       "requiredStages": [
2026-06-15T09:27:05.0417229Z         "doc",
2026-06-15T09:27:05.0417330Z         "impl",
2026-06-15T09:27:05.0417423Z         "unit"
2026-06-15T09:27:05.0417525Z       ],
2026-06-15T09:27:05.0417643Z       "stages": {
2026-06-15T09:27:05.0417738Z         "doc": {
2026-06-15T09:27:05.0417849Z           "complete": true,
2026-06-15T09:27:05.0417967Z           "evidence": [
2026-06-15T09:27:05.0418063Z             {
2026-06-15T09:27:05.0418198Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T09:27:05.0418310Z               "line": 367
2026-06-15T09:27:05.0418412Z             }
2026-06-15T09:27:05.0418513Z           ]
2026-06-15T09:27:05.0418616Z         },
2026-06-15T09:27:05.0418710Z         "impl": {
2026-06-15T09:27:05.0418820Z           "complete": true,
2026-06-15T09:27:05.0418924Z           "evidence": [
2026-06-15T09:27:05.0419100Z             {
2026-06-15T09:27:05.0419243Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T09:27:05.0419352Z               "line": 199
2026-06-15T09:27:05.0419453Z             },
2026-06-15T09:27:05.0419558Z             {
2026-06-15T09:27:05.0419700Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T09:27:05.0419815Z               "line": 303
2026-06-15T09:27:05.0419915Z             },
2026-06-15T09:27:05.0420015Z             {
2026-06-15T09:27:05.0420158Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T09:27:05.0420258Z               "line": 515
2026-06-15T09:27:05.0420358Z             },
2026-06-15T09:27:05.0420459Z             {
2026-06-15T09:27:05.0420601Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T09:27:05.0420703Z               "line": 530
2026-06-15T09:27:05.0420811Z             },
2026-06-15T09:27:05.0420916Z             {
2026-06-15T09:27:05.0421056Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T09:27:05.0421159Z               "line": 1127
2026-06-15T09:27:05.0421254Z             },
2026-06-15T09:27:05.0421351Z             {
2026-06-15T09:27:05.0421488Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:27:05.0421601Z               "line": 443
2026-06-15T09:27:05.0421692Z             },
2026-06-15T09:27:05.0421793Z             {
2026-06-15T09:27:05.0421935Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:27:05.0422036Z               "line": 590
2026-06-15T09:27:05.0422136Z             },
2026-06-15T09:27:05.0422236Z             {
2026-06-15T09:27:05.0422379Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:27:05.0422598Z               "line": 731
2026-06-15T09:27:05.0422685Z             }
2026-06-15T09:27:05.0422785Z           ]
2026-06-15T09:27:05.0422884Z         },
2026-06-15T09:27:05.0422986Z         "int": {
2026-06-15T09:27:05.0423084Z           "complete": false,
2026-06-15T09:27:05.0423189Z           "evidence": []
2026-06-15T09:27:05.0423291Z         },
2026-06-15T09:27:05.0423389Z         "unit": {
2026-06-15T09:27:05.0423494Z           "complete": true,
2026-06-15T09:27:05.0423606Z           "evidence": [
2026-06-15T09:27:05.0423709Z             {
2026-06-15T09:27:05.0423851Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:27:05.0424059Z               "line": 1155
2026-06-15T09:27:05.0424163Z             },
2026-06-15T09:27:05.0424259Z             {
2026-06-15T09:27:05.0424421Z               "path": "crates/spt-daemon/tests/pumpdeadline.rs",
2026-06-15T09:27:05.0424526Z               "line": 30
2026-06-15T09:27:05.0424627Z             }
2026-06-15T09:27:05.0424731Z           ]
2026-06-15T09:27:05.0424836Z         }
2026-06-15T09:27:05.0424932Z       }
2026-06-15T09:27:05.0425031Z     },
2026-06-15T09:27:05.0425131Z     {
2026-06-15T09:27:05.0425275Z       "id": "REQ-HAZARD-REGISTRY-CONCURRENT",
2026-06-15T09:27:05.0425557Z       "title": "Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)",
2026-06-15T09:27:05.0425670Z       "requiredStages": [
2026-06-15T09:27:05.0425770Z         "impl",
2026-06-15T09:27:05.0425872Z         "unit"
2026-06-15T09:27:05.0425975Z       ],
2026-06-15T09:27:05.0426080Z       "stages": {
2026-06-15T09:27:05.0426182Z         "doc": {
2026-06-15T09:27:05.0426304Z           "complete": true,
2026-06-15T09:27:05.0426420Z           "evidence": [
2026-06-15T09:27:05.0426520Z             {
2026-06-15T09:27:05.0426652Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T09:27:05.0426761Z               "line": 139
2026-06-15T09:27:05.0426865Z             }
2026-06-15T09:27:05.0426955Z           ]
2026-06-15T09:27:05.0427049Z         },
2026-06-15T09:27:05.0427155Z         "impl": {
2026-06-15T09:27:05.0427264Z           "complete": true,
2026-06-15T09:27:05.0427369Z           "evidence": [
2026-06-15T09:27:05.0427465Z             {
2026-06-15T09:27:05.0427603Z               "path": "crates/spt-store/src/db.rs",
2026-06-15T09:27:05.0427703Z               "line": 29
2026-06-15T09:27:05.0427804Z             },
2026-06-15T09:27:05.0427899Z             {
2026-06-15T09:27:05.0428046Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T09:27:05.0428156Z               "line": 101
2026-06-15T09:27:05.0428256Z             },
2026-06-15T09:27:05.0428361Z             {
2026-06-15T09:27:05.0428519Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T09:27:05.0428633Z               "line": 30
2026-06-15T09:27:05.0428734Z             },
2026-06-15T09:27:05.0428833Z             {
2026-06-15T09:27:05.0429044Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T09:27:05.0429148Z               "line": 48
2026-06-15T09:27:05.0429261Z             }
2026-06-15T09:27:05.0429362Z           ]
2026-06-15T09:27:05.0429465Z         },
2026-06-15T09:27:05.0429573Z         "int": {
2026-06-15T09:27:05.0429684Z           "complete": false,
2026-06-15T09:27:05.0429799Z           "evidence": []
2026-06-15T09:27:05.0429888Z         },
2026-06-15T09:27:05.0429989Z         "unit": {
2026-06-15T09:27:05.0430098Z           "complete": true,
2026-06-15T09:27:05.0430217Z           "evidence": [
2026-06-15T09:27:05.0430323Z             {
2026-06-15T09:27:05.0430461Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T09:27:05.0430575Z               "line": 162
2026-06-15T09:27:05.0430676Z             }
2026-06-15T09:27:05.0430775Z           ]
2026-06-15T09:27:05.0430875Z         }
2026-06-15T09:27:05.0430981Z       }
2026-06-15T09:27:05.0431080Z     },
2026-06-15T09:27:05.0431170Z     {
2026-06-15T09:27:05.0431305Z       "id": "REQ-HAZARD-REGISTRY-DIR-CREATE",
2026-06-15T09:27:05.0431719Z       "title": "SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)",
2026-06-15T09:27:05.0431940Z       "requiredStages": [
2026-06-15T09:27:05.0432043Z         "doc",
2026-06-15T09:27:05.0432138Z         "impl",
2026-06-15T09:27:05.0432243Z         "unit"
2026-06-15T09:27:05.0432340Z       ],
2026-06-15T09:27:05.0432438Z       "stages": {
2026-06-15T09:27:05.0432539Z         "doc": {
2026-06-15T09:27:05.0432643Z           "complete": true,
2026-06-15T09:27:05.0432743Z           "evidence": [
2026-06-15T09:27:05.0432844Z             {
2026-06-15T09:27:05.0432982Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T09:27:05.0433178Z               "line": 151
2026-06-15T09:27:05.0433283Z             }
2026-06-15T09:27:05.0433382Z           ]
2026-06-15T09:27:05.0433483Z         },
2026-06-15T09:27:05.0433588Z         "impl": {
2026-06-15T09:27:05.0433702Z           "complete": true,
2026-06-15T09:27:05.0433808Z           "evidence": [
2026-06-15T09:27:05.0433912Z             {
2026-06-15T09:27:05.0434069Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T09:27:05.0434175Z               "line": 22
2026-06-15T09:27:05.0434274Z             }
2026-06-15T09:27:05.0434373Z           ]
2026-06-15T09:27:05.0434478Z         },
2026-06-15T09:27:05.0434577Z         "int": {
2026-06-15T09:27:05.0434691Z           "complete": false,
2026-06-15T09:27:05.0434810Z           "evidence": []
2026-06-15T09:27:05.0434906Z         },
2026-06-15T09:27:05.0435010Z         "unit": {
2026-06-15T09:27:05.0435120Z           "complete": true,
2026-06-15T09:27:05.0435235Z           "evidence": [
2026-06-15T09:27:05.0435339Z             {
2026-06-15T09:27:05.0435487Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T09:27:05.0435596Z               "line": 298
2026-06-15T09:27:05.0435691Z             }
2026-06-15T09:27:05.0435793Z           ]
2026-06-15T09:27:05.0435893Z         }
2026-06-15T09:27:05.0435992Z       }
2026-06-15T09:27:05.0436093Z     },
2026-06-15T09:27:05.0436197Z     {
2026-06-15T09:27:05.0436345Z       "id": "REQ-HAZARD-REGISTRY-EPOCH-LEASE",
2026-06-15T09:27:05.0436821Z       "title": "Registry merge ordered by per-node monotonic epoch, never wall-clock — a stale Active can't clobber a newer Offline (4.8, red-team #8)",
2026-06-15T09:27:05.0436941Z       "requiredStages": [
2026-06-15T09:27:05.0437043Z         "impl",
2026-06-15T09:27:05.0437141Z         "unit"
2026-06-15T09:27:05.0437240Z       ],
2026-06-15T09:27:05.0437340Z       "stages": {
2026-06-15T09:27:05.0437449Z         "doc": {
2026-06-15T09:27:05.0437562Z           "complete": true,
2026-06-15T09:27:05.0437677Z           "evidence": [
2026-06-15T09:27:05.0437782Z             {
2026-06-15T09:27:05.0437910Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T09:27:05.0438021Z               "line": 145
2026-06-15T09:27:05.0438116Z             }
2026-06-15T09:27:05.0438220Z           ]
2026-06-15T09:27:05.0438317Z         },
2026-06-15T09:27:05.0438426Z         "impl": {
2026-06-15T09:27:05.0438525Z           "complete": true,
2026-06-15T09:27:05.0438626Z           "evidence": [
2026-06-15T09:27:05.0438726Z             {
2026-06-15T09:27:05.0438883Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-15T09:27:05.0439093Z               "line": 160
2026-06-15T09:27:05.0439193Z             },
2026-06-15T09:27:05.0439299Z             {
2026-06-15T09:27:05.0439460Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:05.0439566Z               "line": 200
2026-06-15T09:27:05.0439671Z             },
2026-06-15T09:27:05.0439769Z             {
2026-06-15T09:27:05.0439912Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.0440025Z               "line": 298
2026-06-15T09:27:05.0440124Z             },
2026-06-15T09:27:05.0440224Z             {
2026-06-15T09:27:05.0440368Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-15T09:27:05.0440476Z               "line": 20
2026-06-15T09:27:05.0440573Z             }
2026-06-15T09:27:05.0440772Z           ]
2026-06-15T09:27:05.0440864Z         },
2026-06-15T09:27:05.0440969Z         "int": {
2026-06-15T09:27:05.0441068Z           "complete": false,
2026-06-15T09:27:05.0441184Z           "evidence": []
2026-06-15T09:27:05.0441288Z         },
2026-06-15T09:27:05.0441388Z         "unit": {
2026-06-15T09:27:05.0441503Z           "complete": true,
2026-06-15T09:27:05.0441608Z           "evidence": [
2026-06-15T09:27:05.0441707Z             {
2026-06-15T09:27:05.0441851Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:05.0441965Z               "line": 885
2026-06-15T09:27:05.0442069Z             },
2026-06-15T09:27:05.0442274Z             {
2026-06-15T09:27:05.0442438Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-15T09:27:05.0442538Z               "line": 88
2026-06-15T09:27:05.0442636Z             },
2026-06-15T09:27:05.0442736Z             {
2026-06-15T09:27:05.0442885Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.0442993Z               "line": 819
2026-06-15T09:27:05.0443094Z             },
2026-06-15T09:27:05.0443190Z             {
2026-06-15T09:27:05.0443332Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.0443443Z               "line": 838
2026-06-15T09:27:05.0443542Z             },
2026-06-15T09:27:05.0443642Z             {
2026-06-15T09:27:05.0443800Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T09:27:05.0443900Z               "line": 279
2026-06-15T09:27:05.0444000Z             },
2026-06-15T09:27:05.0444096Z             {
2026-06-15T09:27:05.0444244Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-15T09:27:05.0444363Z               "line": 82
2026-06-15T09:27:05.0444463Z             },
2026-06-15T09:27:05.0444562Z             {
2026-06-15T09:27:05.0444697Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-15T09:27:05.0444806Z               "line": 99
2026-06-15T09:27:05.0444900Z             },
2026-06-15T09:27:05.0445010Z             {
2026-06-15T09:27:05.0445152Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-15T09:27:05.0445251Z               "line": 119
2026-06-15T09:27:05.0445346Z             }
2026-06-15T09:27:05.0445447Z           ]
2026-06-15T09:27:05.0445546Z         }
2026-06-15T09:27:05.0445646Z       }
2026-06-15T09:27:05.0445747Z     },
2026-06-15T09:27:05.0445851Z     {
2026-06-15T09:27:05.0445990Z       "id": "REQ-HAZARD-REGISTRY-GHOST-ROWS",
2026-06-15T09:27:05.0447368Z       "title": "A dead node identity's registry rows must decay: only the per-(endpoint,node) epoch lease supersedes rows, so without eviction a vanished node's rows are immortal and poison bare-id resolution with phantom AcrossNodes ambiguity — evict rows whose author node has not been heard (admitted inbound feed) within the eviction window; own rows never decay; a revived node re-inserts from its durable epoch within one pump cadence (4.10)",
2026-06-15T09:27:05.0447492Z       "requiredStages": [
2026-06-15T09:27:05.0447598Z         "doc",
2026-06-15T09:27:05.0447697Z         "impl",
2026-06-15T09:27:05.0447801Z         "unit"
2026-06-15T09:27:05.0447901Z       ],
2026-06-15T09:27:05.0448000Z       "stages": {
2026-06-15T09:27:05.0448108Z         "doc": {
2026-06-15T09:27:05.0448209Z           "complete": true,
2026-06-15T09:27:05.0448319Z           "evidence": [
2026-06-15T09:27:05.0448418Z             {
2026-06-15T09:27:05.0448547Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T09:27:05.0448662Z               "line": 157
2026-06-15T09:27:05.0448761Z             }
2026-06-15T09:27:05.0448857Z           ]
2026-06-15T09:27:05.0449024Z         },
2026-06-15T09:27:05.0449138Z         "impl": {
2026-06-15T09:27:05.0449253Z           "complete": true,
2026-06-15T09:27:05.0449357Z           "evidence": [
2026-06-15T09:27:05.0449457Z             {
2026-06-15T09:27:05.0449619Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T09:27:05.0449734Z               "line": 137
2026-06-15T09:27:05.0449948Z             },
2026-06-15T09:27:05.0450049Z             {
2026-06-15T09:27:05.0450212Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:05.0450311Z               "line": 512
2026-06-15T09:27:05.0450410Z             },
2026-06-15T09:27:05.0450511Z             {
2026-06-15T09:27:05.0450670Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:05.0450770Z               "line": 519
2026-06-15T09:27:05.0450876Z             },
2026-06-15T09:27:05.0450980Z             {
2026-06-15T09:27:05.0451119Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.0451233Z               "line": 227
2026-06-15T09:27:05.0451439Z             }
2026-06-15T09:27:05.0451538Z           ]
2026-06-15T09:27:05.0451633Z         },
2026-06-15T09:27:05.0451744Z         "int": {
2026-06-15T09:27:05.0451857Z           "complete": false,
2026-06-15T09:27:05.0451962Z           "evidence": []
2026-06-15T09:27:05.0452063Z         },
2026-06-15T09:27:05.0452172Z         "unit": {
2026-06-15T09:27:05.0452296Z           "complete": true,
2026-06-15T09:27:05.0452402Z           "evidence": [
2026-06-15T09:27:05.0452506Z             {
2026-06-15T09:27:05.0452654Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:05.0452755Z               "line": 1515
2026-06-15T09:27:05.0452863Z             },
2026-06-15T09:27:05.0452959Z             {
2026-06-15T09:27:05.0453107Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:05.0453211Z               "line": 1573
2026-06-15T09:27:05.0453310Z             },
2026-06-15T09:27:05.0453417Z             {
2026-06-15T09:27:05.0453572Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.0453688Z               "line": 851
2026-06-15T09:27:05.0453783Z             }
2026-06-15T09:27:05.0453887Z           ]
2026-06-15T09:27:05.0453989Z         }
2026-06-15T09:27:05.0454089Z       }
2026-06-15T09:27:05.0454193Z     },
2026-06-15T09:27:05.0454293Z     {
2026-06-15T09:27:05.0454431Z       "id": "REQ-HAZARD-REGISTRY-STALE-CLEAN",
2026-06-15T09:27:05.0454651Z       "title": "Stale registry entries degrade to fallback, never hard-fail (4.3)",
2026-06-15T09:27:05.0454774Z       "requiredStages": [
2026-06-15T09:27:05.0454874Z         "impl",
2026-06-15T09:27:05.0454976Z         "unit"
2026-06-15T09:27:05.0455080Z       ],
2026-06-15T09:27:05.0455179Z       "stages": {
2026-06-15T09:27:05.0455286Z         "doc": {
2026-06-15T09:27:05.0455394Z           "complete": false,
2026-06-15T09:27:05.0455503Z           "evidence": []
2026-06-15T09:27:05.0455599Z         },
2026-06-15T09:27:05.0455702Z         "impl": {
2026-06-15T09:27:05.0455825Z           "complete": true,
2026-06-15T09:27:05.0455925Z           "evidence": [
2026-06-15T09:27:05.0456031Z             {
2026-06-15T09:27:05.0456173Z               "path": "crates/spt-store/src/proc.rs",
2026-06-15T09:27:05.0456284Z               "line": 15
2026-06-15T09:27:05.0456388Z             },
2026-06-15T09:27:05.0456497Z             {
2026-06-15T09:27:05.0456641Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T09:27:05.0456745Z               "line": 55
2026-06-15T09:27:05.0456851Z             },
2026-06-15T09:27:05.0456951Z             {
2026-06-15T09:27:05.0457097Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T09:27:05.0457208Z               "line": 66
2026-06-15T09:27:05.0457303Z             },
2026-06-15T09:27:05.0457408Z             {
2026-06-15T09:27:05.0457538Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T09:27:05.0457651Z               "line": 115
2026-06-15T09:27:05.0457751Z             },
2026-06-15T09:27:05.0457858Z             {
2026-06-15T09:27:05.0458004Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T09:27:05.0458120Z               "line": 138
2026-06-15T09:27:05.0458220Z             }
2026-06-15T09:27:05.0458318Z           ]
2026-06-15T09:27:05.0458412Z         },
2026-06-15T09:27:05.0458518Z         "int": {
2026-06-15T09:27:05.0458720Z           "complete": false,
2026-06-15T09:27:05.0458821Z           "evidence": []
2026-06-15T09:27:05.0458922Z         },
2026-06-15T09:27:05.0459112Z         "unit": {
2026-06-15T09:27:05.0459222Z           "complete": true,
2026-06-15T09:27:05.0459335Z           "evidence": [
2026-06-15T09:27:05.0459427Z             {
2026-06-15T09:27:05.0459575Z               "path": "crates/spt-store/src/proc.rs",
2026-06-15T09:27:05.0459679Z               "line": 149
2026-06-15T09:27:05.0459775Z             },
2026-06-15T09:27:05.0459879Z             {
2026-06-15T09:27:05.0460013Z               "path": "crates/spt-store/src/proc.rs",
2026-06-15T09:27:05.0460222Z               "line": 155
2026-06-15T09:27:05.0460323Z             },
2026-06-15T09:27:05.0460429Z             {
2026-06-15T09:27:05.0460566Z               "path": "crates/spt-store/src/proc.rs",
2026-06-15T09:27:05.0460662Z               "line": 169
2026-06-15T09:27:05.0460768Z             },
2026-06-15T09:27:05.0460875Z             {
2026-06-15T09:27:05.0461013Z               "path": "crates/spt-store/src/proc.rs",
2026-06-15T09:27:05.0461122Z               "line": 178
2026-06-15T09:27:05.0461226Z             },
2026-06-15T09:27:05.0461316Z             {
2026-06-15T09:27:05.0461451Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T09:27:05.0461564Z               "line": 195
2026-06-15T09:27:05.0461659Z             },
2026-06-15T09:27:05.0461760Z             {
2026-06-15T09:27:05.0461902Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T09:27:05.0462004Z               "line": 208
2026-06-15T09:27:05.0462108Z             },
2026-06-15T09:27:05.0462207Z             {
2026-06-15T09:27:05.0462361Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T09:27:05.0462470Z               "line": 271
2026-06-15T09:27:05.0462570Z             },
2026-06-15T09:27:05.0462671Z             {
2026-06-15T09:27:05.0462818Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T09:27:05.0462924Z               "line": 290
2026-06-15T09:27:05.0463028Z             },
2026-06-15T09:27:05.0463128Z             {
2026-06-15T09:27:05.0463267Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T09:27:05.0463371Z               "line": 319
2026-06-15T09:27:05.0463471Z             }
2026-06-15T09:27:05.0463572Z           ]
2026-06-15T09:27:05.0463672Z         }
2026-06-15T09:27:05.0463766Z       }
2026-06-15T09:27:05.0463861Z     },
2026-06-15T09:27:05.0463952Z     {
2026-06-15T09:27:05.0464100Z       "id": "REQ-HAZARD-RESTART-IDEMPOTENT",
2026-06-15T09:27:05.0464395Z       "title": "Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)",
2026-06-15T09:27:05.0464519Z       "requiredStages": [
2026-06-15T09:27:05.0464625Z         "impl",
2026-06-15T09:27:05.0464729Z         "unit",
2026-06-15T09:27:05.0464830Z         "int"
2026-06-15T09:27:05.0464930Z       ],
2026-06-15T09:27:05.0465039Z       "stages": {
2026-06-15T09:27:05.0465139Z         "doc": {
2026-06-15T09:27:05.0465254Z           "complete": false,
2026-06-15T09:27:05.0465368Z           "evidence": []
2026-06-15T09:27:05.0465469Z         },
2026-06-15T09:27:05.0465569Z         "impl": {
2026-06-15T09:27:05.0465682Z           "complete": true,
2026-06-15T09:27:05.0465793Z           "evidence": [
2026-06-15T09:27:05.0465884Z             {
2026-06-15T09:27:05.0466025Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T09:27:05.0466135Z               "line": 447
2026-06-15T09:27:05.0466225Z             },
2026-06-15T09:27:05.0466333Z             {
2026-06-15T09:27:05.0466471Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T09:27:05.0466587Z               "line": 867
2026-06-15T09:27:05.0466694Z             },
2026-06-15T09:27:05.0466796Z             {
2026-06-15T09:27:05.0466934Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T09:27:05.0467047Z               "line": 912
2026-06-15T09:27:05.0467149Z             },
2026-06-15T09:27:05.0467343Z             {
2026-06-15T09:27:05.0467492Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T09:27:05.0470478Z               "line": 937
2026-06-15T09:27:05.0470602Z             },
2026-06-15T09:27:05.0470703Z             {
2026-06-15T09:27:05.0470864Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:27:05.0470975Z               "line": 987
2026-06-15T09:27:05.0471074Z             },
2026-06-15T09:27:05.0471174Z             {
2026-06-15T09:27:05.0471328Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:27:05.0471440Z               "line": 1113
2026-06-15T09:27:05.0471544Z             },
2026-06-15T09:27:05.0471786Z             {
2026-06-15T09:27:05.0471938Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:27:05.0472039Z               "line": 1244
2026-06-15T09:27:05.0472148Z             },
2026-06-15T09:27:05.0472249Z             {
2026-06-15T09:27:05.0472387Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:27:05.0472505Z               "line": 1292
2026-06-15T09:27:05.0472607Z             },
2026-06-15T09:27:05.0472706Z             {
2026-06-15T09:27:05.0472850Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-15T09:27:05.0472968Z               "line": 46
2026-06-15T09:27:05.0473068Z             },
2026-06-15T09:27:05.0473169Z             {
2026-06-15T09:27:05.0473316Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-15T09:27:05.0473421Z               "line": 167
2026-06-15T09:27:05.0473522Z             },
2026-06-15T09:27:05.0473621Z             {
2026-06-15T09:27:05.0473765Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T09:27:05.0473885Z               "line": 132
2026-06-15T09:27:05.0473983Z             },
2026-06-15T09:27:05.0474084Z             {
2026-06-15T09:27:05.0474228Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T09:27:05.0474341Z               "line": 137
2026-06-15T09:27:05.0474431Z             },
2026-06-15T09:27:05.0474537Z             {
2026-06-15T09:27:05.0474674Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T09:27:05.0474784Z               "line": 183
2026-06-15T09:27:05.0474884Z             }
2026-06-15T09:27:05.0474979Z           ]
2026-06-15T09:27:05.0475085Z         },
2026-06-15T09:27:05.0475185Z         "int": {
2026-06-15T09:27:05.0475294Z           "complete": true,
2026-06-15T09:27:05.0475395Z           "evidence": [
2026-06-15T09:27:05.0475495Z             {
2026-06-15T09:27:05.0475656Z               "path": "crates/spt-daemon/tests/idempotent.rs",
2026-06-15T09:27:05.0475753Z               "line": 27
2026-06-15T09:27:05.0475857Z             },
2026-06-15T09:27:05.0475952Z             {
2026-06-15T09:27:05.0476106Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-15T09:27:05.0476219Z               "line": 129
2026-06-15T09:27:05.0476310Z             },
2026-06-15T09:27:05.0476402Z             {
2026-06-15T09:27:05.0476553Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-15T09:27:05.0476666Z               "line": 200
2026-06-15T09:27:05.0476766Z             }
2026-06-15T09:27:05.0476864Z           ]
2026-06-15T09:27:05.0476959Z         },
2026-06-15T09:27:05.0477060Z         "unit": {
2026-06-15T09:27:05.0477179Z           "complete": true,
2026-06-15T09:27:05.0477283Z           "evidence": [
2026-06-15T09:27:05.0477384Z             {
2026-06-15T09:27:05.0477536Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-15T09:27:05.0477637Z               "line": 313
2026-06-15T09:27:05.0477733Z             },
2026-06-15T09:27:05.0477827Z             {
2026-06-15T09:27:05.0477961Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-15T09:27:05.0478071Z               "line": 345
2026-06-15T09:27:05.0478166Z             },
2026-06-15T09:27:05.0478266Z             {
2026-06-15T09:27:05.0478414Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-15T09:27:05.0478524Z               "line": 366
2026-06-15T09:27:05.0478625Z             },
2026-06-15T09:27:05.0478820Z             {
2026-06-15T09:27:05.0479044Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T09:27:05.0479163Z               "line": 508
2026-06-15T09:27:05.0479254Z             },
2026-06-15T09:27:05.0479354Z             {
2026-06-15T09:27:05.0479495Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-15T09:27:05.0479596Z               "line": 289
2026-06-15T09:27:05.0479694Z             },
2026-06-15T09:27:05.0479798Z             {
2026-06-15T09:27:05.0479941Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-15T09:27:05.0480042Z               "line": 230
2026-06-15T09:27:05.0480141Z             },
2026-06-15T09:27:05.0480347Z             {
2026-06-15T09:27:05.0480484Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T09:27:05.0480590Z               "line": 526
2026-06-15T09:27:05.0480681Z             },
2026-06-15T09:27:05.0480784Z             {
2026-06-15T09:27:05.0480924Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T09:27:05.0481024Z               "line": 556
2026-06-15T09:27:05.0481124Z             }
2026-06-15T09:27:05.0481220Z           ]
2026-06-15T09:27:05.0481324Z         }
2026-06-15T09:27:05.0481424Z       }
2026-06-15T09:27:05.0481525Z     },
2026-06-15T09:27:05.0481625Z     {
2026-06-15T09:27:05.0481768Z       "id": "REQ-HAZARD-ROLLBACK-STATE-COMPAT",
2026-06-15T09:27:05.0483600Z       "title": "A brain must not irreversibly migrate durable state before update ready-promotion: the readiness-gated auto-rollback (ADR-0018 Q7) spawns the N-1 binary against durable state the new brain may have written, so every pre-ready write must stay N-1-readable (schema migrations gated behind ready-promotion, or written N-1-tolerant/additive). Else the first in-place schema migration silently bricks rollback (KNOWN-HAZARDS 6.8). Free now — a 2026-06-09 audit confirmed zero state-migration code exists; unmintable retroactively once a migration ships.",
2026-06-15T09:27:05.0483734Z       "requiredStages": [
2026-06-15T09:27:05.0483834Z         "doc",
2026-06-15T09:27:05.0483938Z         "impl",
2026-06-15T09:27:05.0484034Z         "unit"
2026-06-15T09:27:05.0484135Z       ],
2026-06-15T09:27:05.0484239Z       "stages": {
2026-06-15T09:27:05.0484339Z         "doc": {
2026-06-15T09:27:05.0484455Z           "complete": true,
2026-06-15T09:27:05.0484553Z           "evidence": [
2026-06-15T09:27:05.0484659Z             {
2026-06-15T09:27:05.0484793Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T09:27:05.0484896Z               "line": 307
2026-06-15T09:27:05.0484996Z             }
2026-06-15T09:27:05.0485097Z           ]
2026-06-15T09:27:05.0485191Z         },
2026-06-15T09:27:05.0485301Z         "impl": {
2026-06-15T09:27:05.0485421Z           "complete": true,
2026-06-15T09:27:05.0485516Z           "evidence": [
2026-06-15T09:27:05.0485620Z             {
2026-06-15T09:27:05.0485783Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-15T09:27:05.0485897Z               "line": 33
2026-06-15T09:27:05.0485998Z             },
2026-06-15T09:27:05.0486098Z             {
2026-06-15T09:27:05.0486259Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-15T09:27:05.0486361Z               "line": 39
2026-06-15T09:27:05.0486460Z             }
2026-06-15T09:27:05.0486560Z           ]
2026-06-15T09:27:05.0486666Z         },
2026-06-15T09:27:05.0486764Z         "int": {
2026-06-15T09:27:05.0486875Z           "complete": false,
2026-06-15T09:27:05.0486991Z           "evidence": []
2026-06-15T09:27:05.0487089Z         },
2026-06-15T09:27:05.0487193Z         "unit": {
2026-06-15T09:27:05.0487293Z           "complete": true,
2026-06-15T09:27:05.0487406Z           "evidence": [
2026-06-15T09:27:05.0487510Z             {
2026-06-15T09:27:05.0487664Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-15T09:27:05.0487763Z               "line": 95
2026-06-15T09:27:05.0487863Z             }
2026-06-15T09:27:05.0487964Z           ]
2026-06-15T09:27:05.0488182Z         }
2026-06-15T09:27:05.0488283Z       }
2026-06-15T09:27:05.0488378Z     },
2026-06-15T09:27:05.0488478Z     {
2026-06-15T09:27:05.0488607Z       "id": "REQ-HAZARD-SELF-ELEVATE",
2026-06-15T09:27:05.0490968Z       "title": "Self-elevation (REQ-ELEVATE-1) re-runs the EXACT original invocation with the binary's ABSOLUTE exe path — never widening privilege scope, never adding/altering args, never via a PATH-resolved bare name, never via a shell-interpolated command string (argv-array only, no `sh -c`); the elevated child drops state back to the user (composes with the 5.7 de-elevation) and NEVER re-elevates (loop-safe: decide_elevation_path returns AlreadyElevated whenever the process is already Elevated, on every OS). The user's UAC/polkit/sudo prompt is the only consent gate — we never bypass it; the print-hint floor prints the absolute-path command too. The unprivileged parent never depends on (pipes/captures) the privileged child's stdout.",
2026-06-15T09:27:05.0491203Z       "requiredStages": [
2026-06-15T09:27:05.0491307Z         "unit"
2026-06-15T09:27:05.0491403Z       ],
2026-06-15T09:27:05.0491508Z       "stages": {
2026-06-15T09:27:05.0491603Z         "doc": {
2026-06-15T09:27:05.0491727Z           "complete": false,
2026-06-15T09:27:05.0491832Z           "evidence": []
2026-06-15T09:27:05.0491937Z         },
2026-06-15T09:27:05.0492032Z         "impl": {
2026-06-15T09:27:05.0492147Z           "complete": true,
2026-06-15T09:27:05.0492256Z           "evidence": [
2026-06-15T09:27:05.0492357Z             {
2026-06-15T09:27:05.0492495Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0492603Z               "line": 3080
2026-06-15T09:27:05.0492708Z             },
2026-06-15T09:27:05.0492812Z             {
2026-06-15T09:27:05.0492934Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0493040Z               "line": 3132
2026-06-15T09:27:05.0493141Z             },
2026-06-15T09:27:05.0493239Z             {
2026-06-15T09:27:05.0493359Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0493464Z               "line": 3177
2026-06-15T09:27:05.0493563Z             },
2026-06-15T09:27:05.0493660Z             {
2026-06-15T09:27:05.0493798Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:27:05.0493902Z               "line": 92
2026-06-15T09:27:05.0494003Z             },
2026-06-15T09:27:05.0494108Z             {
2026-06-15T09:27:05.0494246Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:27:05.0494352Z               "line": 148
2026-06-15T09:27:05.0494451Z             },
2026-06-15T09:27:05.0494551Z             {
2026-06-15T09:27:05.0494671Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:27:05.0494789Z               "line": 192
2026-06-15T09:27:05.0494890Z             },
2026-06-15T09:27:05.0494991Z             {
2026-06-15T09:27:05.0495123Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:27:05.0495219Z               "line": 200
2026-06-15T09:27:05.0495315Z             },
2026-06-15T09:27:05.0495414Z             {
2026-06-15T09:27:05.0495546Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:27:05.0495652Z               "line": 211
2026-06-15T09:27:05.0495752Z             },
2026-06-15T09:27:05.0495847Z             {
2026-06-15T09:27:05.0495972Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:27:05.0496081Z               "line": 265
2026-06-15T09:27:05.0496180Z             },
2026-06-15T09:27:05.0496282Z             {
2026-06-15T09:27:05.0496405Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:27:05.0496515Z               "line": 279
2026-06-15T09:27:05.0496615Z             }
2026-06-15T09:27:05.0496711Z           ]
2026-06-15T09:27:05.0496805Z         },
2026-06-15T09:27:05.0496907Z         "int": {
2026-06-15T09:27:05.0497020Z           "complete": false,
2026-06-15T09:27:05.0497134Z           "evidence": []
2026-06-15T09:27:05.0497241Z         },
2026-06-15T09:27:05.0497344Z         "unit": {
2026-06-15T09:27:05.0497454Z           "complete": true,
2026-06-15T09:27:05.0497663Z           "evidence": [
2026-06-15T09:27:05.0497767Z             {
2026-06-15T09:27:05.0497901Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:27:05.0498013Z               "line": 419
2026-06-15T09:27:05.0498108Z             },
2026-06-15T09:27:05.0498209Z             {
2026-06-15T09:27:05.0498333Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:27:05.0498442Z               "line": 470
2026-06-15T09:27:05.0498548Z             },
2026-06-15T09:27:05.0498647Z             {
2026-06-15T09:27:05.0498781Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:27:05.0498881Z               "line": 499
2026-06-15T09:27:05.0499149Z             },
2026-06-15T09:27:05.0499249Z             {
2026-06-15T09:27:05.0499396Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:27:05.0499501Z               "line": 526
2026-06-15T09:27:05.0499587Z             }
2026-06-15T09:27:05.0499687Z           ]
2026-06-15T09:27:05.0499793Z         }
2026-06-15T09:27:05.0499896Z       }
2026-06-15T09:27:05.0499992Z     },
2026-06-15T09:27:05.0500094Z     {
2026-06-15T09:27:05.0500235Z       "id": "REQ-HAZARD-SINGLE-PATH-SOURCE",
2026-06-15T09:27:05.0500451Z       "title": "Single path/registry source of truth; no layout ambiguity (6.1)",
2026-06-15T09:27:05.0500568Z       "requiredStages": [
2026-06-15T09:27:05.0500673Z         "impl",
2026-06-15T09:27:05.0500777Z         "unit"
2026-06-15T09:27:05.0500871Z       ],
2026-06-15T09:27:05.0500985Z       "stages": {
2026-06-15T09:27:05.0501091Z         "doc": {
2026-06-15T09:27:05.0501205Z           "complete": false,
2026-06-15T09:27:05.0501319Z           "evidence": []
2026-06-15T09:27:05.0501420Z         },
2026-06-15T09:27:05.0501524Z         "impl": {
2026-06-15T09:27:05.0501634Z           "complete": true,
2026-06-15T09:27:05.0501739Z           "evidence": [
2026-06-15T09:27:05.0501843Z             {
2026-06-15T09:27:05.0502002Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:27:05.0502115Z               "line": 62
2026-06-15T09:27:05.0502201Z             },
2026-06-15T09:27:05.0502302Z             {
2026-06-15T09:27:05.0502454Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:27:05.0502558Z               "line": 71
2026-06-15T09:27:05.0502651Z             },
2026-06-15T09:27:05.0502759Z             {
2026-06-15T09:27:05.0502898Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:27:05.0502998Z               "line": 80
2026-06-15T09:27:05.0503097Z             },
2026-06-15T09:27:05.0503196Z             {
2026-06-15T09:27:05.0503339Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:27:05.0503452Z               "line": 88
2026-06-15T09:27:05.0503552Z             },
2026-06-15T09:27:05.0503648Z             {
2026-06-15T09:27:05.0503790Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:27:05.0503890Z               "line": 33
2026-06-15T09:27:05.0503987Z             },
2026-06-15T09:27:05.0504095Z             {
2026-06-15T09:27:05.0504235Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:27:05.0504335Z               "line": 65
2026-06-15T09:27:05.0504439Z             },
2026-06-15T09:27:05.0504535Z             {
2026-06-15T09:27:05.0504668Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:27:05.0504763Z               "line": 74
2026-06-15T09:27:05.0504869Z             },
2026-06-15T09:27:05.0504969Z             {
2026-06-15T09:27:05.0505101Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:27:05.0505208Z               "line": 93
2026-06-15T09:27:05.0505307Z             },
2026-06-15T09:27:05.0505411Z             {
2026-06-15T09:27:05.0505546Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:27:05.0505650Z               "line": 102
2026-06-15T09:27:05.0505750Z             },
2026-06-15T09:27:05.0505847Z             {
2026-06-15T09:27:05.0505983Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:27:05.0506193Z               "line": 111
2026-06-15T09:27:05.0506293Z             },
2026-06-15T09:27:05.0506383Z             {
2026-06-15T09:27:05.0506523Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:27:05.0506636Z               "line": 122
2026-06-15T09:27:05.0506731Z             },
2026-06-15T09:27:05.0506832Z             {
2026-06-15T09:27:05.0506965Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:27:05.0507075Z               "line": 140
2026-06-15T09:27:05.0507175Z             },
2026-06-15T09:27:05.0507280Z             {
2026-06-15T09:27:05.0507419Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:27:05.0507614Z               "line": 149
2026-06-15T09:27:05.0507714Z             },
2026-06-15T09:27:05.0507815Z             {
2026-06-15T09:27:05.0507957Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:27:05.0508058Z               "line": 158
2026-06-15T09:27:05.0508153Z             },
2026-06-15T09:27:05.0508256Z             {
2026-06-15T09:27:05.0508390Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:27:05.0508489Z               "line": 169
2026-06-15T09:27:05.0508588Z             },
2026-06-15T09:27:05.0508688Z             {
2026-06-15T09:27:05.0508827Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:27:05.0508935Z               "line": 177
2026-06-15T09:27:05.0509108Z             },
2026-06-15T09:27:05.0509203Z             {
2026-06-15T09:27:05.0509337Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:27:05.0509437Z               "line": 186
2026-06-15T09:27:05.0509531Z             },
2026-06-15T09:27:05.0509632Z             {
2026-06-15T09:27:05.0509765Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:27:05.0509879Z               "line": 195
2026-06-15T09:27:05.0509976Z             },
2026-06-15T09:27:05.0510076Z             {
2026-06-15T09:27:05.0510213Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:27:05.0510315Z               "line": 204
2026-06-15T09:27:05.0510418Z             },
2026-06-15T09:27:05.0510518Z             {
2026-06-15T09:27:05.0510659Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:27:05.0510771Z               "line": 216
2026-06-15T09:27:05.0510867Z             },
2026-06-15T09:27:05.0510968Z             {
2026-06-15T09:27:05.0511105Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:27:05.0511218Z               "line": 223
2026-06-15T09:27:05.0511319Z             },
2026-06-15T09:27:05.0511421Z             {
2026-06-15T09:27:05.0511560Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:27:05.0511680Z               "line": 232
2026-06-15T09:27:05.0511779Z             },
2026-06-15T09:27:05.0511889Z             {
2026-06-15T09:27:05.0512028Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:27:05.0512136Z               "line": 239
2026-06-15T09:27:05.0512238Z             },
2026-06-15T09:27:05.0512342Z             {
2026-06-15T09:27:05.0512484Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:27:05.0512595Z               "line": 306
2026-06-15T09:27:05.0512695Z             },
2026-06-15T09:27:05.0512795Z             {
2026-06-15T09:27:05.0512920Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:27:05.0513033Z               "line": 318
2026-06-15T09:27:05.0513128Z             },
2026-06-15T09:27:05.0513230Z             {
2026-06-15T09:27:05.0513367Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:27:05.0513468Z               "line": 405
2026-06-15T09:27:05.0513568Z             }
2026-06-15T09:27:05.0513667Z           ]
2026-06-15T09:27:05.0513771Z         },
2026-06-15T09:27:05.0513871Z         "int": {
2026-06-15T09:27:05.0513988Z           "complete": false,
2026-06-15T09:27:05.0514097Z           "evidence": []
2026-06-15T09:27:05.0514198Z         },
2026-06-15T09:27:05.0514294Z         "unit": {
2026-06-15T09:27:05.0514393Z           "complete": true,
2026-06-15T09:27:05.0514604Z           "evidence": [
2026-06-15T09:27:05.0514703Z             {
2026-06-15T09:27:05.0514851Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:27:05.0514961Z               "line": 487
2026-06-15T09:27:05.0515061Z             },
2026-06-15T09:27:05.0515162Z             {
2026-06-15T09:27:05.0515299Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:27:05.0515409Z               "line": 528
2026-06-15T09:27:05.0515509Z             },
2026-06-15T09:27:05.0515610Z             {
2026-06-15T09:27:05.0515744Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:27:05.0515852Z               "line": 541
2026-06-15T09:27:05.0516068Z             },
2026-06-15T09:27:05.0516167Z             {
2026-06-15T09:27:05.0516310Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:27:05.0516412Z               "line": 627
2026-06-15T09:27:05.0516515Z             }
2026-06-15T09:27:05.0516623Z           ]
2026-06-15T09:27:05.0516729Z         }
2026-06-15T09:27:05.0516830Z       }
2026-06-15T09:27:05.0516919Z     },
2026-06-15T09:27:05.0517020Z     {
2026-06-15T09:27:05.0517139Z       "id": "REQ-HAZARD-SOFT-CLEANUP",
2026-06-15T09:27:05.0517369Z       "title": "Soft-cleanup preserves state, removes only the ready marker (6.2)",
2026-06-15T09:27:05.0517483Z       "requiredStages": [
2026-06-15T09:27:05.0517582Z         "impl",
2026-06-15T09:27:05.0517683Z         "unit"
2026-06-15T09:27:05.0517778Z       ],
2026-06-15T09:27:05.0517887Z       "stages": {
2026-06-15T09:27:05.0517984Z         "doc": {
2026-06-15T09:27:05.0518098Z           "complete": false,
2026-06-15T09:27:05.0518212Z           "evidence": []
2026-06-15T09:27:05.0518313Z         },
2026-06-15T09:27:05.0518417Z         "impl": {
2026-06-15T09:27:05.0518536Z           "complete": true,
2026-06-15T09:27:05.0518652Z           "evidence": [
2026-06-15T09:27:05.0518750Z             {
2026-06-15T09:27:05.0518888Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T09:27:05.0519077Z               "line": 152
2026-06-15T09:27:05.0519167Z             },
2026-06-15T09:27:05.0519267Z             {
2026-06-15T09:27:05.0519410Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:27:05.0519515Z               "line": 167
2026-06-15T09:27:05.0519615Z             }
2026-06-15T09:27:05.0519711Z           ]
2026-06-15T09:27:05.0519805Z         },
2026-06-15T09:27:05.0519907Z         "int": {
2026-06-15T09:27:05.0520020Z           "complete": false,
2026-06-15T09:27:05.0520129Z           "evidence": []
2026-06-15T09:27:05.0520231Z         },
2026-06-15T09:27:05.0520345Z         "unit": {
2026-06-15T09:27:05.0520458Z           "complete": true,
2026-06-15T09:27:05.0520579Z           "evidence": [
2026-06-15T09:27:05.0520673Z             {
2026-06-15T09:27:05.0520817Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T09:27:05.0520913Z               "line": 274
2026-06-15T09:27:05.0521026Z             },
2026-06-15T09:27:05.0521127Z             {
2026-06-15T09:27:05.0521275Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:27:05.0521389Z               "line": 712
2026-06-15T09:27:05.0521481Z             },
2026-06-15T09:27:05.0521576Z             {
2026-06-15T09:27:05.0521717Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:27:05.0521831Z               "line": 725
2026-06-15T09:27:05.0521935Z             }
2026-06-15T09:27:05.0522043Z           ]
2026-06-15T09:27:05.0522135Z         }
2026-06-15T09:27:05.0522220Z       }
2026-06-15T09:27:05.0522325Z     },
2026-06-15T09:27:05.0522424Z     {
2026-06-15T09:27:05.0522563Z       "id": "REQ-HAZARD-STALE-INDEX-LOCK",
2026-06-15T09:27:05.0522730Z       "title": "Sweep stale lockfiles on daemon boot (1.3)",
2026-06-15T09:27:05.0522850Z       "requiredStages": [
2026-06-15T09:27:05.0522950Z         "impl",
2026-06-15T09:27:05.0523049Z         "unit"
2026-06-15T09:27:05.0523146Z       ],
2026-06-15T09:27:05.0523245Z       "stages": {
2026-06-15T09:27:05.0523451Z         "doc": {
2026-06-15T09:27:05.0523564Z           "complete": false,
2026-06-15T09:27:05.0523684Z           "evidence": []
2026-06-15T09:27:05.0523785Z         },
2026-06-15T09:27:05.0523893Z         "impl": {
2026-06-15T09:27:05.0524008Z           "complete": true,
2026-06-15T09:27:05.0524105Z           "evidence": [
2026-06-15T09:27:05.0524208Z             {
2026-06-15T09:27:05.0524345Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:27:05.0524460Z               "line": 114
2026-06-15T09:27:05.0524553Z             },
2026-06-15T09:27:05.0524657Z             {
2026-06-15T09:27:05.0524812Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T09:27:05.0525030Z               "line": 481
2026-06-15T09:27:05.0525126Z             }
2026-06-15T09:27:05.0525225Z           ]
2026-06-15T09:27:05.0525335Z         },
2026-06-15T09:27:05.0525440Z         "int": {
2026-06-15T09:27:05.0525549Z           "complete": false,
2026-06-15T09:27:05.0525660Z           "evidence": []
2026-06-15T09:27:05.0525760Z         },
2026-06-15T09:27:05.0525873Z         "unit": {
2026-06-15T09:27:05.0525979Z           "complete": true,
2026-06-15T09:27:05.0526084Z           "evidence": [
2026-06-15T09:27:05.0526188Z             {
2026-06-15T09:27:05.0526333Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T09:27:05.0526436Z               "line": 515
2026-06-15T09:27:05.0526537Z             }
2026-06-15T09:27:05.0526638Z           ]
2026-06-15T09:27:05.0526741Z         }
2026-06-15T09:27:05.0526837Z       }
2026-06-15T09:27:05.0526938Z     },
2026-06-15T09:27:05.0527038Z     {
2026-06-15T09:27:05.0527188Z       "id": "REQ-HAZARD-STALE-SIGNOFF-SENTINEL",
2026-06-15T09:27:05.0527390Z       "title": "Stale signoff sentinel does not kill a fresh start (3.2)",
2026-06-15T09:27:05.0527512Z       "requiredStages": [
2026-06-15T09:27:05.0527609Z         "impl",
2026-06-15T09:27:05.0527709Z         "unit"
2026-06-15T09:27:05.0527813Z       ],
2026-06-15T09:27:05.0527915Z       "stages": {
2026-06-15T09:27:05.0528019Z         "doc": {
2026-06-15T09:27:05.0528123Z           "complete": false,
2026-06-15T09:27:05.0528239Z           "evidence": []
2026-06-15T09:27:05.0528334Z         },
2026-06-15T09:27:05.0528433Z         "impl": {
2026-06-15T09:27:05.0528549Z           "complete": true,
2026-06-15T09:27:05.0528658Z           "evidence": [
2026-06-15T09:27:05.0528748Z             {
2026-06-15T09:27:05.0528892Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:27:05.0529077Z               "line": 502
2026-06-15T09:27:05.0529173Z             },
2026-06-15T09:27:05.0529278Z             {
2026-06-15T09:27:05.0529419Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T09:27:05.0529534Z               "line": 28
2026-06-15T09:27:05.0529633Z             }
2026-06-15T09:27:05.0529732Z           ]
2026-06-15T09:27:05.0529837Z         },
2026-06-15T09:27:05.0529938Z         "int": {
2026-06-15T09:27:05.0530041Z           "complete": false,
2026-06-15T09:27:05.0530157Z           "evidence": []
2026-06-15T09:27:05.0530257Z         },
2026-06-15T09:27:05.0530361Z         "unit": {
2026-06-15T09:27:05.0530472Z           "complete": true,
2026-06-15T09:27:05.0530576Z           "evidence": [
2026-06-15T09:27:05.0530680Z             {
2026-06-15T09:27:05.0530824Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T09:27:05.0530934Z               "line": 229
2026-06-15T09:27:05.0531038Z             }
2026-06-15T09:27:05.0531134Z           ]
2026-06-15T09:27:05.0531234Z         }
2026-06-15T09:27:05.0531338Z       }
2026-06-15T09:27:05.0531435Z     },
2026-06-15T09:27:05.0531534Z     {
2026-06-15T09:27:05.0531672Z       "id": "REQ-HAZARD-STDIN-SESSION-ID",
2026-06-15T09:27:05.0531835Z       "title": "Stdin session_id precedence over env (2.2)",
2026-06-15T09:27:05.0531959Z       "requiredStages": [],
2026-06-15T09:27:05.0532055Z       "stages": {
2026-06-15T09:27:05.0532164Z         "doc": {
2026-06-15T09:27:05.0532272Z           "complete": false,
2026-06-15T09:27:05.0532486Z           "evidence": []
2026-06-15T09:27:05.0532589Z         },
2026-06-15T09:27:05.0532690Z         "impl": {
2026-06-15T09:27:05.0532804Z           "complete": false,
2026-06-15T09:27:05.0532913Z           "evidence": []
2026-06-15T09:27:05.0533019Z         },
2026-06-15T09:27:05.0533114Z         "int": {
2026-06-15T09:27:05.0533232Z           "complete": false,
2026-06-15T09:27:05.0533339Z           "evidence": []
2026-06-15T09:27:05.0533434Z         },
2026-06-15T09:27:05.0533538Z         "unit": {
2026-06-15T09:27:05.0533643Z           "complete": false,
2026-06-15T09:27:05.0533754Z           "evidence": []
2026-06-15T09:27:05.0533858Z         }
2026-06-15T09:27:05.0534054Z       }
2026-06-15T09:27:05.0534148Z     },
2026-06-15T09:27:05.0534235Z     {
2026-06-15T09:27:05.0534379Z       "id": "REQ-HAZARD-SUBPROCESS-TIMEOUT",
2026-06-15T09:27:05.0534559Z       "title": "Every harness/git subprocess has a timeout (5.3)",
2026-06-15T09:27:05.0534679Z       "requiredStages": [
2026-06-15T09:27:05.0534787Z         "impl",
2026-06-15T09:27:05.0534886Z         "unit"
2026-06-15T09:27:05.0534987Z       ],
2026-06-15T09:27:05.0535094Z       "stages": {
2026-06-15T09:27:05.0535194Z         "doc": {
2026-06-15T09:27:05.0535304Z           "complete": false,
2026-06-15T09:27:05.0535414Z           "evidence": []
2026-06-15T09:27:05.0535509Z         },
2026-06-15T09:27:05.0535615Z         "impl": {
2026-06-15T09:27:05.0535729Z           "complete": true,
2026-06-15T09:27:05.0535833Z           "evidence": [
2026-06-15T09:27:05.0535930Z             {
2026-06-15T09:27:05.0536067Z               "path": "crates/spt-live/src/turn.rs",
2026-06-15T09:27:05.0536167Z               "line": 19
2026-06-15T09:27:05.0536283Z             },
2026-06-15T09:27:05.0536377Z             {
2026-06-15T09:27:05.0536530Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T09:27:05.0536635Z               "line": 347
2026-06-15T09:27:05.0536739Z             },
2026-06-15T09:27:05.0536840Z             {
2026-06-15T09:27:05.0536996Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T09:27:05.0537102Z               "line": 383
2026-06-15T09:27:05.0537208Z             },
2026-06-15T09:27:05.0537311Z             {
2026-06-15T09:27:05.0537450Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T09:27:05.0537561Z               "line": 15
2026-06-15T09:27:05.0537663Z             },
2026-06-15T09:27:05.0537767Z             {
2026-06-15T09:27:05.0537907Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T09:27:05.0538011Z               "line": 48
2026-06-15T09:27:05.0538116Z             },
2026-06-15T09:27:05.0538207Z             {
2026-06-15T09:27:05.0538350Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T09:27:05.0538460Z               "line": 119
2026-06-15T09:27:05.0538565Z             },
2026-06-15T09:27:05.0538650Z             {
2026-06-15T09:27:05.0538774Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0538889Z               "line": 3508
2026-06-15T09:27:05.0539070Z             }
2026-06-15T09:27:05.0539175Z           ]
2026-06-15T09:27:05.0539275Z         },
2026-06-15T09:27:05.0539375Z         "int": {
2026-06-15T09:27:05.0539490Z           "complete": false,
2026-06-15T09:27:05.0539594Z           "evidence": []
2026-06-15T09:27:05.0539695Z         },
2026-06-15T09:27:05.0539791Z         "unit": {
2026-06-15T09:27:05.0539904Z           "complete": true,
2026-06-15T09:27:05.0540008Z           "evidence": [
2026-06-15T09:27:05.0540113Z             {
2026-06-15T09:27:05.0540249Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T09:27:05.0540349Z               "line": 496
2026-06-15T09:27:05.0540460Z             },
2026-06-15T09:27:05.0540559Z             {
2026-06-15T09:27:05.0540697Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T09:27:05.0540812Z               "line": 165
2026-06-15T09:27:05.0540912Z             },
2026-06-15T09:27:05.0541007Z             {
2026-06-15T09:27:05.0541146Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T09:27:05.0541357Z               "line": 175
2026-06-15T09:27:05.0541456Z             }
2026-06-15T09:27:05.0541555Z           ]
2026-06-15T09:27:05.0541651Z         }
2026-06-15T09:27:05.0541756Z       }
2026-06-15T09:27:05.0541856Z     },
2026-06-15T09:27:05.0541947Z     {
2026-06-15T09:27:05.0542085Z       "id": "REQ-HAZARD-SUDO-SECURE-PATH",
2026-06-15T09:27:05.0543013Z       "title": "Elevation guidance on Unix names the binary's ABSOLUTE path under sudo (a user-local install ~/.local/bin · ~/.cargo/bin is not on sudo's secure_path, so bare `sudo spt` dies 'command not found'); gated commands auto-elevate on an interactive TTY, else print the runnable hint (5.10)",
2026-06-15T09:27:05.0543240Z       "requiredStages": [
2026-06-15T09:27:05.0543337Z         "impl",
2026-06-15T09:27:05.0543441Z         "unit"
2026-06-15T09:27:05.0543545Z       ],
2026-06-15T09:27:05.0543642Z       "stages": {
2026-06-15T09:27:05.0543741Z         "doc": {
2026-06-15T09:27:05.0543865Z           "complete": false,
2026-06-15T09:27:05.0543975Z           "evidence": []
2026-06-15T09:27:05.0544075Z         },
2026-06-15T09:27:05.0544175Z         "impl": {
2026-06-15T09:27:05.0544295Z           "complete": true,
2026-06-15T09:27:05.0544395Z           "evidence": [
2026-06-15T09:27:05.0544494Z             {
2026-06-15T09:27:05.0544633Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:27:05.0544742Z               "line": 192
2026-06-15T09:27:05.0544838Z             },
2026-06-15T09:27:05.0544939Z             {
2026-06-15T09:27:05.0545076Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:27:05.0545187Z               "line": 279
2026-06-15T09:27:05.0545291Z             }
2026-06-15T09:27:05.0545390Z           ]
2026-06-15T09:27:05.0545490Z         },
2026-06-15T09:27:05.0545590Z         "int": {
2026-06-15T09:27:05.0545707Z           "complete": false,
2026-06-15T09:27:05.0545817Z           "evidence": []
2026-06-15T09:27:05.0545917Z         },
2026-06-15T09:27:05.0546030Z         "unit": {
2026-06-15T09:27:05.0546146Z           "complete": true,
2026-06-15T09:27:05.0546260Z           "evidence": [
2026-06-15T09:27:05.0546364Z             {
2026-06-15T09:27:05.0546509Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:27:05.0546609Z               "line": 470
2026-06-15T09:27:05.0546712Z             },
2026-06-15T09:27:05.0546809Z             {
2026-06-15T09:27:05.0546947Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:27:05.0547061Z               "line": 526
2026-06-15T09:27:05.0547158Z             }
2026-06-15T09:27:05.0547257Z           ]
2026-06-15T09:27:05.0547357Z         }
2026-06-15T09:27:05.0547453Z       }
2026-06-15T09:27:05.0547556Z     },
2026-06-15T09:27:05.0547652Z     {
2026-06-15T09:27:05.0547782Z       "id": "REQ-HAZARD-UNC-PATH-STRIP",
2026-06-15T09:27:05.0547967Z       "title": "Strip Windows UNC prefix on serialized paths (5.4)",
2026-06-15T09:27:05.0548083Z       "requiredStages": [
2026-06-15T09:27:05.0548182Z         "impl",
2026-06-15T09:27:05.0548286Z         "unit"
2026-06-15T09:27:05.0548385Z       ],
2026-06-15T09:27:05.0548482Z       "stages": {
2026-06-15T09:27:05.0548585Z         "doc": {
2026-06-15T09:27:05.0548686Z           "complete": false,
2026-06-15T09:27:05.0548801Z           "evidence": []
2026-06-15T09:27:05.0548900Z         },
2026-06-15T09:27:05.0551630Z         "impl": {
2026-06-15T09:27:05.0551777Z           "complete": true,
2026-06-15T09:27:05.0551882Z           "evidence": [
2026-06-15T09:27:05.0551982Z             {
2026-06-15T09:27:05.0552135Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T09:27:05.0552250Z               "line": 35
2026-06-15T09:27:05.0552364Z             }
2026-06-15T09:27:05.0552459Z           ]
2026-06-15T09:27:05.0552561Z         },
2026-06-15T09:27:05.0552654Z         "int": {
2026-06-15T09:27:05.0552774Z           "complete": false,
2026-06-15T09:27:05.0552885Z           "evidence": []
2026-06-15T09:27:05.0552979Z         },
2026-06-15T09:27:05.0553312Z         "unit": {
2026-06-15T09:27:05.0553430Z           "complete": true,
2026-06-15T09:27:05.0553541Z           "evidence": [
2026-06-15T09:27:05.0553639Z             {
2026-06-15T09:27:05.0553791Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T09:27:05.0553897Z               "line": 220
2026-06-15T09:27:05.0553996Z             }
2026-06-15T09:27:05.0554096Z           ]
2026-06-15T09:27:05.0554192Z         }
2026-06-15T09:27:05.0554292Z       }
2026-06-15T09:27:05.0554391Z     },
2026-06-15T09:27:05.0554493Z     {
2026-06-15T09:27:05.0554621Z       "id": "REQ-HAZARD-UPDATE-ROLLBACK",
2026-06-15T09:27:05.0554926Z       "title": "Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)",
2026-06-15T09:27:05.0555155Z       "requiredStages": [
2026-06-15T09:27:05.0555254Z         "impl",
2026-06-15T09:27:05.0555350Z         "unit"
2026-06-15T09:27:05.0555447Z       ],
2026-06-15T09:27:05.0555550Z       "stages": {
2026-06-15T09:27:05.0555655Z         "doc": {
2026-06-15T09:27:05.0555766Z           "complete": false,
2026-06-15T09:27:05.0555875Z           "evidence": []
2026-06-15T09:27:05.0555978Z         },
2026-06-15T09:27:05.0556079Z         "impl": {
2026-06-15T09:27:05.0556182Z           "complete": true,
2026-06-15T09:27:05.0556285Z           "evidence": [
2026-06-15T09:27:05.0556377Z             {
2026-06-15T09:27:05.0556539Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T09:27:05.0556653Z               "line": 405
2026-06-15T09:27:05.0556754Z             },
2026-06-15T09:27:05.0556854Z             {
2026-06-15T09:27:05.0557001Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:27:05.0557121Z               "line": 409
2026-06-15T09:27:05.0557221Z             },
2026-06-15T09:27:05.0557316Z             {
2026-06-15T09:27:05.0557464Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T09:27:05.0557568Z               "line": 156
2026-06-15T09:27:05.0557670Z             }
2026-06-15T09:27:05.0557770Z           ]
2026-06-15T09:27:05.0557874Z         },
2026-06-15T09:27:05.0557970Z         "int": {
2026-06-15T09:27:05.0558084Z           "complete": false,
2026-06-15T09:27:05.0558193Z           "evidence": []
2026-06-15T09:27:05.0558290Z         },
2026-06-15T09:27:05.0558390Z         "unit": {
2026-06-15T09:27:05.0558504Z           "complete": true,
2026-06-15T09:27:05.0558614Z           "evidence": [
2026-06-15T09:27:05.0558709Z             {
2026-06-15T09:27:05.0558860Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:27:05.0559032Z               "line": 812
2026-06-15T09:27:05.0559131Z             },
2026-06-15T09:27:05.0559236Z             {
2026-06-15T09:27:05.0559380Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:27:05.0559484Z               "line": 826
2026-06-15T09:27:05.0559581Z             },
2026-06-15T09:27:05.0559685Z             {
2026-06-15T09:27:05.0559827Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:27:05.0559938Z               "line": 845
2026-06-15T09:27:05.0560033Z             },
2026-06-15T09:27:05.0560123Z             {
2026-06-15T09:27:05.0560258Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:27:05.0560357Z               "line": 862
2026-06-15T09:27:05.0560457Z             },
2026-06-15T09:27:05.0560554Z             {
2026-06-15T09:27:05.0560714Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-15T09:27:05.0560824Z               "line": 441
2026-06-15T09:27:05.0560926Z             }
2026-06-15T09:27:05.0561024Z           ]
2026-06-15T09:27:05.0561123Z         }
2026-06-15T09:27:05.0561229Z       }
2026-06-15T09:27:05.0561336Z     },
2026-06-15T09:27:05.0561422Z     {
2026-06-15T09:27:05.0561551Z       "id": "REQ-HAZARD-VIEWER-ISOLATION",
2026-06-15T09:27:05.0563844Z       "title": "A slow / dead / hostile VIEWER must NEVER stall the controller, the PTY child, or the session drain thread. The broker drain fans output to the controller on the authoritative blocking bounded path (advances delivered_through) but to each viewer via a bounded per-viewer channel with a dedicated writer thread; the drain `try_send`s under the log lock and a viewer whose bounded queue OVERFLOWS (can't keep up) is EVICTED (queue dropped, writer thread ends, removed from the viewers map) — the drain thread NEVER touches a viewer socket, so no viewer write can backpressure or block it. A soft viewer cap bounds the thread count. Viewer eviction never perturbs the controller stream, the delivered_through cursor, or the child.",
2026-06-15T09:27:05.0564072Z       "requiredStages": [
2026-06-15T09:27:05.0564171Z         "unit",
2026-06-15T09:27:05.0564379Z         "int"
2026-06-15T09:27:05.0564481Z       ],
2026-06-15T09:27:05.0564580Z       "stages": {
2026-06-15T09:27:05.0564675Z         "doc": {
2026-06-15T09:27:05.0564790Z           "complete": true,
2026-06-15T09:27:05.0564885Z           "evidence": [
2026-06-15T09:27:05.0564985Z             {
2026-06-15T09:27:05.0565133Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T09:27:05.0565242Z               "line": 374
2026-06-15T09:27:05.0565333Z             }
2026-06-15T09:27:05.0565434Z           ]
2026-06-15T09:27:05.0565533Z         },
2026-06-15T09:27:05.0565634Z         "impl": {
2026-06-15T09:27:05.0565749Z           "complete": true,
2026-06-15T09:27:05.0565853Z           "evidence": [
2026-06-15T09:27:05.0565949Z             {
2026-06-15T09:27:05.0566106Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:27:05.0566211Z               "line": 97
2026-06-15T09:27:05.0566307Z             }
2026-06-15T09:27:05.0566407Z           ]
2026-06-15T09:27:05.0566510Z         },
2026-06-15T09:27:05.0566619Z         "int": {
2026-06-15T09:27:05.0566728Z           "complete": true,
2026-06-15T09:27:05.0566846Z           "evidence": [
2026-06-15T09:27:05.0566932Z             {
2026-06-15T09:27:05.0567076Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T09:27:05.0567174Z               "line": 918
2026-06-15T09:27:05.0567281Z             }
2026-06-15T09:27:05.0567376Z           ]
2026-06-15T09:27:05.0567475Z         },
2026-06-15T09:27:05.0567586Z         "unit": {
2026-06-15T09:27:05.0567691Z           "complete": true,
2026-06-15T09:27:05.0567800Z           "evidence": [
2026-06-15T09:27:05.0567901Z             {
2026-06-15T09:27:05.0568043Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:27:05.0568157Z               "line": 1459
2026-06-15T09:27:05.0568249Z             }
2026-06-15T09:27:05.0568353Z           ]
2026-06-15T09:27:05.0568448Z         }
2026-06-15T09:27:05.0568550Z       }
2026-06-15T09:27:05.0568649Z     },
2026-06-15T09:27:05.0568744Z     {
2026-06-15T09:27:05.0568884Z       "id": "REQ-HAZARD-WAN-ORIGIN-AUTH",
2026-06-15T09:27:05.0569821Z       "title": "WAN-inbound origin is transport truth, never payload: the access gate's subject (ADR-0009 origin-node whitelist) is the QUIC handshake-proven remote node id from the broker's conn/stream table — a forged origin/node field inside record bytes is inert (7.5)",
2026-06-15T09:27:05.0569945Z       "requiredStages": [
2026-06-15T09:27:05.0570049Z         "doc",
2026-06-15T09:27:05.0570155Z         "impl",
2026-06-15T09:27:05.0570250Z         "unit"
2026-06-15T09:27:05.0570354Z       ],
2026-06-15T09:27:05.0570460Z       "stages": {
2026-06-15T09:27:05.0570556Z         "doc": {
2026-06-15T09:27:05.0570669Z           "complete": true,
2026-06-15T09:27:05.0570765Z           "evidence": [
2026-06-15T09:27:05.0570861Z             {
2026-06-15T09:27:05.0570984Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T09:27:05.0571095Z               "line": 359
2026-06-15T09:27:05.0571185Z             }
2026-06-15T09:27:05.0571284Z           ]
2026-06-15T09:27:05.0571389Z         },
2026-06-15T09:27:05.0571486Z         "impl": {
2026-06-15T09:27:05.0571598Z           "complete": true,
2026-06-15T09:27:05.0571702Z           "evidence": [
2026-06-15T09:27:05.0571798Z             {
2026-06-15T09:27:05.0571944Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T09:27:05.0572159Z               "line": 87
2026-06-15T09:27:05.0572263Z             },
2026-06-15T09:27:05.0572363Z             {
2026-06-15T09:27:05.0572507Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-15T09:27:05.0572621Z               "line": 105
2026-06-15T09:27:05.0572717Z             },
2026-06-15T09:27:05.0572817Z             {
2026-06-15T09:27:05.0572964Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T09:27:05.0573065Z               "line": 55
2026-06-15T09:27:05.0573165Z             },
2026-06-15T09:27:05.0573269Z             {
2026-06-15T09:27:05.0573404Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T09:27:05.0573608Z               "line": 31
2026-06-15T09:27:05.0573709Z             },
2026-06-15T09:27:05.0573803Z             {
2026-06-15T09:27:05.0573957Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T09:27:05.0574057Z               "line": 189
2026-06-15T09:27:05.0574161Z             },
2026-06-15T09:27:05.0574262Z             {
2026-06-15T09:27:05.0574409Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T09:27:05.0574508Z               "line": 95
2026-06-15T09:27:05.0574608Z             },
2026-06-15T09:27:05.0574708Z             {
2026-06-15T09:27:05.0574844Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T09:27:05.0574959Z               "line": 29
2026-06-15T09:27:05.0575060Z             },
2026-06-15T09:27:05.0575159Z             {
2026-06-15T09:27:05.0575308Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T09:27:05.0575417Z               "line": 104
2026-06-15T09:27:05.0575526Z             },
2026-06-15T09:27:05.0575627Z             {
2026-06-15T09:27:05.0575793Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:05.0575894Z               "line": 208
2026-06-15T09:27:05.0575998Z             },
2026-06-15T09:27:05.0576098Z             {
2026-06-15T09:27:05.0576243Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-15T09:27:05.0576341Z               "line": 28
2026-06-15T09:27:05.0576437Z             },
2026-06-15T09:27:05.0576538Z             {
2026-06-15T09:27:05.0576680Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-15T09:27:05.0576781Z               "line": 74
2026-06-15T09:27:05.0576882Z             },
2026-06-15T09:27:05.0576976Z             {
2026-06-15T09:27:05.0577136Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-15T09:27:05.0577246Z               "line": 32
2026-06-15T09:27:05.0577344Z             },
2026-06-15T09:27:05.0577444Z             {
2026-06-15T09:27:05.0577593Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T09:27:05.0577702Z               "line": 40
2026-06-15T09:27:05.0577797Z             },
2026-06-15T09:27:05.0577893Z             {
2026-06-15T09:27:05.0578031Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T09:27:05.0578141Z               "line": 184
2026-06-15T09:27:05.0578236Z             },
2026-06-15T09:27:05.0578336Z             {
2026-06-15T09:27:05.0578480Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T09:27:05.0578579Z               "line": 61
2026-06-15T09:27:05.0578679Z             },
2026-06-15T09:27:05.0578775Z             {
2026-06-15T09:27:05.0578913Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T09:27:05.0579085Z               "line": 131
2026-06-15T09:27:05.0579181Z             },
2026-06-15T09:27:05.0579275Z             {
2026-06-15T09:27:05.0579415Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T09:27:05.0579528Z               "line": 223
2026-06-15T09:27:05.0579633Z             },
2026-06-15T09:27:05.0579730Z             {
2026-06-15T09:27:05.0579867Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-15T09:27:05.0579975Z               "line": 37
2026-06-15T09:27:05.0580076Z             },
2026-06-15T09:27:05.0580167Z             {
2026-06-15T09:27:05.0580419Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T09:27:05.0580515Z               "line": 38
2026-06-15T09:27:05.0580614Z             },
2026-06-15T09:27:05.0580716Z             {
2026-06-15T09:27:05.0580863Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-15T09:27:05.0580962Z               "line": 36
2026-06-15T09:27:05.0581063Z             },
2026-06-15T09:27:05.0581163Z             {
2026-06-15T09:27:05.0581301Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-15T09:27:05.0581411Z               "line": 40
2026-06-15T09:27:05.0581501Z             }
2026-06-15T09:27:05.0581596Z           ]
2026-06-15T09:27:05.0581693Z         },
2026-06-15T09:27:05.0581892Z         "int": {
2026-06-15T09:27:05.0582008Z           "complete": false,
2026-06-15T09:27:05.0582107Z           "evidence": []
2026-06-15T09:27:05.0582211Z         },
2026-06-15T09:27:05.0582325Z         "unit": {
2026-06-15T09:27:05.0582438Z           "complete": true,
2026-06-15T09:27:05.0582542Z           "evidence": [
2026-06-15T09:27:05.0582647Z             {
2026-06-15T09:27:05.0582800Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T09:27:05.0582904Z               "line": 212
2026-06-15T09:27:05.0583001Z             },
2026-06-15T09:27:05.0583100Z             {
2026-06-15T09:27:05.0583258Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-15T09:27:05.0583363Z               "line": 136
2026-06-15T09:27:05.0583462Z             },
2026-06-15T09:27:05.0583563Z             {
2026-06-15T09:27:05.0583720Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-15T09:27:05.0583829Z               "line": 685
2026-06-15T09:27:05.0583940Z             },
2026-06-15T09:27:05.0584034Z             {
2026-06-15T09:27:05.0584178Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-15T09:27:05.0584289Z               "line": 224
2026-06-15T09:27:05.0584387Z             },
2026-06-15T09:27:05.0584488Z             {
2026-06-15T09:27:05.0584632Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-15T09:27:05.0584750Z               "line": 206
2026-06-15T09:27:05.0584851Z             },
2026-06-15T09:27:05.0584951Z             {
2026-06-15T09:27:05.0585092Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-15T09:27:05.0585202Z               "line": 112
2026-06-15T09:27:05.0585296Z             },
2026-06-15T09:27:05.0585395Z             {
2026-06-15T09:27:05.0585538Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-15T09:27:05.0585635Z               "line": 157
2026-06-15T09:27:05.0585733Z             },
2026-06-15T09:27:05.0585834Z             {
2026-06-15T09:27:05.0585982Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T09:27:05.0586091Z               "line": 215
2026-06-15T09:27:05.0586197Z             },
2026-06-15T09:27:05.0586297Z             {
2026-06-15T09:27:05.0586439Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-15T09:27:05.0586554Z               "line": 141
2026-06-15T09:27:05.0586663Z             },
2026-06-15T09:27:05.0586764Z             {
2026-06-15T09:27:05.0586897Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-15T09:27:05.0587006Z               "line": 162
2026-06-15T09:27:05.0587103Z             }
2026-06-15T09:27:05.0587207Z           ]
2026-06-15T09:27:05.0587302Z         }
2026-06-15T09:27:05.0587404Z       }
2026-06-15T09:27:05.0587503Z     },
2026-06-15T09:27:05.0587602Z     {
2026-06-15T09:27:05.0587740Z       "id": "REQ-HAZARD-WINDOWS-PID-RECYCLE",
2026-06-15T09:27:05.0587919Z       "title": "Windows PID-recycling false positives guarded (5.1)",
2026-06-15T09:27:05.0588033Z       "requiredStages": [
2026-06-15T09:27:05.0588144Z         "impl",
2026-06-15T09:27:05.0588243Z         "unit"
2026-06-15T09:27:05.0588338Z       ],
2026-06-15T09:27:05.0588434Z       "stages": {
2026-06-15T09:27:05.0588534Z         "doc": {
2026-06-15T09:27:05.0588653Z           "complete": false,
2026-06-15T09:27:05.0588749Z           "evidence": []
2026-06-15T09:27:05.0589021Z         },
2026-06-15T09:27:05.0589116Z         "impl": {
2026-06-15T09:27:05.0589234Z           "complete": true,
2026-06-15T09:27:05.0589331Z           "evidence": [
2026-06-15T09:27:05.0589435Z             {
2026-06-15T09:27:05.0589578Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T09:27:05.0589670Z               "line": 95
2026-06-15T09:27:05.0589773Z             },
2026-06-15T09:27:05.0589874Z             {
2026-06-15T09:27:05.0590014Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:27:05.0590126Z               "line": 102
2026-06-15T09:27:05.0590222Z             }
2026-06-15T09:27:05.0590324Z           ]
2026-06-15T09:27:05.0590516Z         },
2026-06-15T09:27:05.0590616Z         "int": {
2026-06-15T09:27:05.0590727Z           "complete": false,
2026-06-15T09:27:05.0590841Z           "evidence": []
2026-06-15T09:27:05.0590936Z         },
2026-06-15T09:27:05.0591037Z         "unit": {
2026-06-15T09:27:05.0591155Z           "complete": true,
2026-06-15T09:27:05.0591256Z           "evidence": [
2026-06-15T09:27:05.0591356Z             {
2026-06-15T09:27:05.0591494Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T09:27:05.0591595Z               "line": 250
2026-06-15T09:27:05.0591700Z             },
2026-06-15T09:27:05.0591804Z             {
2026-06-15T09:27:05.0591948Z               "path": "crates/spt-store/src/proc.rs",
2026-06-15T09:27:05.0592052Z               "line": 198
2026-06-15T09:27:05.0592151Z             },
2026-06-15T09:27:05.0592249Z             {
2026-06-15T09:27:05.0592385Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:27:05.0592491Z               "line": 489
2026-06-15T09:27:05.0592592Z             },
2026-06-15T09:27:05.0592695Z             {
2026-06-15T09:27:05.0592832Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:27:05.0592947Z               "line": 522
2026-06-15T09:27:05.0593041Z             }
2026-06-15T09:27:05.0593145Z           ]
2026-06-15T09:27:05.0593251Z         }
2026-06-15T09:27:05.0593351Z       }
2026-06-15T09:27:05.0593450Z     },
2026-06-15T09:27:05.0593541Z     {
2026-06-15T09:27:05.0593675Z       "id": "REQ-HAZARD-WORKER-PATH",
2026-06-15T09:27:05.0593880Z       "title": "Single source of truth for Worker/Psyche perch location (1.5)",
2026-06-15T09:27:05.0594003Z       "requiredStages": [
2026-06-15T09:27:05.0594099Z         "impl",
2026-06-15T09:27:05.0594200Z         "unit"
2026-06-15T09:27:05.0594300Z       ],
2026-06-15T09:27:05.0594404Z       "stages": {
2026-06-15T09:27:05.0594505Z         "doc": {
2026-06-15T09:27:05.0594619Z           "complete": false,
2026-06-15T09:27:05.0594733Z           "evidence": []
2026-06-15T09:27:05.0594839Z         },
2026-06-15T09:27:05.0594938Z         "impl": {
2026-06-15T09:27:05.0595053Z           "complete": true,
2026-06-15T09:27:05.0595158Z           "evidence": [
2026-06-15T09:27:05.0595262Z             {
2026-06-15T09:27:05.0595397Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:27:05.0595516Z               "line": 262
2026-06-15T09:27:05.0595614Z             },
2026-06-15T09:27:05.0595714Z             {
2026-06-15T09:27:05.0595847Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:27:05.0595945Z               "line": 307
2026-06-15T09:27:05.0596051Z             },
2026-06-15T09:27:05.0596151Z             {
2026-06-15T09:27:05.0596293Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:27:05.0596404Z               "line": 319
2026-06-15T09:27:05.0596499Z             }
2026-06-15T09:27:05.0596603Z           ]
2026-06-15T09:27:05.0596705Z         },
2026-06-15T09:27:05.0596813Z         "int": {
2026-06-15T09:27:05.0596932Z           "complete": false,
2026-06-15T09:27:05.0597043Z           "evidence": []
2026-06-15T09:27:05.0597147Z         },
2026-06-15T09:27:05.0597247Z         "unit": {
2026-06-15T09:27:05.0597363Z           "complete": true,
2026-06-15T09:27:05.0597471Z           "evidence": [
2026-06-15T09:27:05.0597571Z             {
2026-06-15T09:27:05.0597819Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:27:05.0597934Z               "line": 455
2026-06-15T09:27:05.0598045Z             },
2026-06-15T09:27:05.0598138Z             {
2026-06-15T09:27:05.0598281Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:27:05.0598377Z               "line": 499
2026-06-15T09:27:05.0598484Z             }
2026-06-15T09:27:05.0598578Z           ]
2026-06-15T09:27:05.0598675Z         }
2026-06-15T09:27:05.0598775Z       }
2026-06-15T09:27:05.0598870Z     },
2026-06-15T09:27:05.0599056Z     {
2026-06-15T09:27:05.0599156Z       "id": "REQ-HOST-RUN-1",
2026-06-15T09:27:05.0601711Z       "title": "spt-hosted harness bringup: `spt endpoint run` spawns an adapter's `[session.self]` command template into a broker-held PTY (the spawn-session seam, brain.rs spawn_session_pid — same broker path shellhost.rs launch_shell_brokered_in uses for shells, now for kind=\"harness\" self-role), registers the perch under the given endpoint id, returns the id. Reverses today's harness-hosted-only launch (external launcher → `api bind`). Non-interactive flag set (--adapter <a[:profile]> --id <id> --create --resume <session> --attach|--start|--view) covers every terminal action of the W2 interactive picker so shortcuts (cc-<id>) bake fully non-interactive launches; composite adapter:profile resolves via registry::resolve_option leaf-replace overlay.",
2026-06-15T09:27:05.0601940Z       "requiredStages": [
2026-06-15T09:27:05.0602040Z         "impl",
2026-06-15T09:27:05.0602140Z         "unit",
2026-06-15T09:27:05.0602250Z         "int"
2026-06-15T09:27:05.0602335Z       ],
2026-06-15T09:27:05.0602441Z       "stages": {
2026-06-15T09:27:05.0602555Z         "doc": {
2026-06-15T09:27:05.0602674Z           "complete": false,
2026-06-15T09:27:05.0602785Z           "evidence": []
2026-06-15T09:27:05.0602889Z         },
2026-06-15T09:27:05.0602998Z         "impl": {
2026-06-15T09:27:05.0603099Z           "complete": true,
2026-06-15T09:27:05.0603209Z           "evidence": [
2026-06-15T09:27:05.0603312Z             {
2026-06-15T09:27:05.0603474Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T09:27:05.0603568Z               "line": 24
2026-06-15T09:27:05.0603671Z             },
2026-06-15T09:27:05.0603782Z             {
2026-06-15T09:27:05.0603935Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T09:27:05.0604030Z               "line": 63
2026-06-15T09:27:05.0604131Z             },
2026-06-15T09:27:05.0604230Z             {
2026-06-15T09:27:05.0604378Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T09:27:05.0604478Z               "line": 109
2026-06-15T09:27:05.0604583Z             },
2026-06-15T09:27:05.0604683Z             {
2026-06-15T09:27:05.0604812Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0604921Z               "line": 1159
2026-06-15T09:27:05.0605022Z             }
2026-06-15T09:27:05.0605122Z           ]
2026-06-15T09:27:05.0605222Z         },
2026-06-15T09:27:05.0605332Z         "int": {
2026-06-15T09:27:05.0605446Z           "complete": true,
2026-06-15T09:27:05.0605556Z           "evidence": [
2026-06-15T09:27:05.0605657Z             {
2026-06-15T09:27:05.0605803Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T09:27:05.0605908Z               "line": 279
2026-06-15T09:27:05.0605996Z             }
2026-06-15T09:27:05.0606095Z           ]
2026-06-15T09:27:05.0606198Z         },
2026-06-15T09:27:05.0606303Z         "unit": {
2026-06-15T09:27:05.0606407Z           "complete": true,
2026-06-15T09:27:05.0606519Z           "evidence": [
2026-06-15T09:27:05.0606620Z             {
2026-06-15T09:27:05.0606764Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T09:27:05.0606882Z               "line": 149
2026-06-15T09:27:05.0606979Z             },
2026-06-15T09:27:05.0607074Z             {
2026-06-15T09:27:05.0607226Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T09:27:05.0607327Z               "line": 169
2026-06-15T09:27:05.0607521Z             },
2026-06-15T09:27:05.0607622Z             {
2026-06-15T09:27:05.0607779Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T09:27:05.0607874Z               "line": 202
2026-06-15T09:27:05.0607970Z             }
2026-06-15T09:27:05.0608074Z           ]
2026-06-15T09:27:05.0608170Z         }
2026-06-15T09:27:05.0608271Z       }
2026-06-15T09:27:05.0608370Z     },
2026-06-15T09:27:05.0608465Z     {
2026-06-15T09:27:05.0608586Z       "id": "REQ-HOST-RUN-2",
2026-06-15T09:27:05.0610504Z       "title": "Project-scoped working directory for spt-hosted bringup: `spt endpoint run` lands the broker-spawned harness PTY in the user's PROJECT cwd, not the daemon's, via an additive `SpawnReq.cwd` field carried through the broker PTY spawn (portable-pty CommandBuilder cwd). N-1-safe wire change (additive, defaulted). Required because the consumer (Claude Code) is project-scoped: broker-inherited cwd = the daemon's cwd = the wrong `.claude`, wrong session history, wrong digest source; `cc <id>` at a project root MUST land the harness in that project. W1 ships broker-inherited cwd as a bringup-proof shortcut only; this REQ must land before the M12 gate (doyle, 2026-06-14).",
2026-06-15T09:27:05.0610732Z       "requiredStages": [
2026-06-15T09:27:05.0610833Z         "impl",
2026-06-15T09:27:05.0610931Z         "unit",
2026-06-15T09:27:05.0611032Z         "int"
2026-06-15T09:27:05.0611134Z       ],
2026-06-15T09:27:05.0611237Z       "stages": {
2026-06-15T09:27:05.0611337Z         "doc": {
2026-06-15T09:27:05.0611458Z           "complete": false,
2026-06-15T09:27:05.0611566Z           "evidence": []
2026-06-15T09:27:05.0611679Z         },
2026-06-15T09:27:05.0611775Z         "impl": {
2026-06-15T09:27:05.0611895Z           "complete": true,
2026-06-15T09:27:05.0612003Z           "evidence": [
2026-06-15T09:27:05.0612105Z             {
2026-06-15T09:27:05.0612261Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T09:27:05.0612362Z               "line": 110
2026-06-15T09:27:05.0612462Z             },
2026-06-15T09:27:05.0612562Z             {
2026-06-15T09:27:05.0612701Z               "path": "crates/spt-term/src/pty.rs",
2026-06-15T09:27:05.0612815Z               "line": 113
2026-06-15T09:27:05.0612914Z             }
2026-06-15T09:27:05.0613011Z           ]
2026-06-15T09:27:05.0613106Z         },
2026-06-15T09:27:05.0613201Z         "int": {
2026-06-15T09:27:05.0613306Z           "complete": true,
2026-06-15T09:27:05.0613412Z           "evidence": [
2026-06-15T09:27:05.0613515Z             {
2026-06-15T09:27:05.0613659Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T09:27:05.0613773Z               "line": 454
2026-06-15T09:27:05.0613877Z             }
2026-06-15T09:27:05.0613981Z           ]
2026-06-15T09:27:05.0614081Z         },
2026-06-15T09:27:05.0614185Z         "unit": {
2026-06-15T09:27:05.0614299Z           "complete": true,
2026-06-15T09:27:05.0614400Z           "evidence": [
2026-06-15T09:27:05.0614504Z             {
2026-06-15T09:27:05.0614652Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-15T09:27:05.0614762Z               "line": 86
2026-06-15T09:27:05.0614861Z             }
2026-06-15T09:27:05.0614963Z           ]
2026-06-15T09:27:05.0615058Z         }
2026-06-15T09:27:05.0615157Z       }
2026-06-15T09:27:05.0615253Z     },
2026-06-15T09:27:05.0615353Z     {
2026-06-15T09:27:05.0615467Z       "id": "REQ-INFRA-1",
2026-06-15T09:27:05.0615677Z       "title": "GitHub issue tracking for v1; tangled.org as migration target",
2026-06-15T09:27:05.0615801Z       "requiredStages": [],
2026-06-15T09:27:05.0615897Z       "stages": {
2026-06-15T09:27:05.0615997Z         "doc": {
2026-06-15T09:27:05.0616116Z           "complete": false,
2026-06-15T09:27:05.0616236Z           "evidence": []
2026-06-15T09:27:05.0616335Z         },
2026-06-15T09:27:05.0616431Z         "impl": {
2026-06-15T09:27:05.0616541Z           "complete": false,
2026-06-15T09:27:05.0616645Z           "evidence": []
2026-06-15T09:27:05.0616844Z         },
2026-06-15T09:27:05.0616948Z         "int": {
2026-06-15T09:27:05.0617057Z           "complete": false,
2026-06-15T09:27:05.0617171Z           "evidence": []
2026-06-15T09:27:05.0617262Z         },
2026-06-15T09:27:05.0617367Z         "unit": {
2026-06-15T09:27:05.0617481Z           "complete": false,
2026-06-15T09:27:05.0617587Z           "evidence": []
2026-06-15T09:27:05.0617690Z         }
2026-06-15T09:27:05.0617791Z       }
2026-06-15T09:27:05.0617892Z     },
2026-06-15T09:27:05.0617987Z     {
2026-06-15T09:27:05.0618101Z       "id": "REQ-INST-1",
2026-06-15T09:27:05.0618287Z       "title": "endpoint ID vs instance split (adapter-agnostic ID)",
2026-06-15T09:27:05.0618474Z       "requiredStages": [],
2026-06-15T09:27:05.0618582Z       "stages": {
2026-06-15T09:27:05.0618683Z         "doc": {
2026-06-15T09:27:05.0618798Z           "complete": false,
2026-06-15T09:27:05.0618897Z           "evidence": []
2026-06-15T09:27:05.0619069Z         },
2026-06-15T09:27:05.0619174Z         "impl": {
2026-06-15T09:27:05.0619287Z           "complete": false,
2026-06-15T09:27:05.0619401Z           "evidence": []
2026-06-15T09:27:05.0619501Z         },
2026-06-15T09:27:05.0619600Z         "int": {
2026-06-15T09:27:05.0619708Z           "complete": false,
2026-06-15T09:27:05.0619820Z           "evidence": []
2026-06-15T09:27:05.0619924Z         },
2026-06-15T09:27:05.0620023Z         "unit": {
2026-06-15T09:27:05.0620144Z           "complete": false,
2026-06-15T09:27:05.0620239Z           "evidence": []
2026-06-15T09:27:05.0620338Z         }
2026-06-15T09:27:05.0620435Z       }
2026-06-15T09:27:05.0620534Z     },
2026-06-15T09:27:05.0620633Z     {
2026-06-15T09:27:05.0620754Z       "id": "REQ-INST-10",
2026-06-15T09:27:05.0621001Z       "title": "Qualified addressing [subnet:]id[@node] + ambiguity forces qualification",
2026-06-15T09:27:05.0621116Z       "requiredStages": [
2026-06-15T09:27:05.0621221Z         "impl",
2026-06-15T09:27:05.0621326Z         "unit"
2026-06-15T09:27:05.0621426Z       ],
2026-06-15T09:27:05.0621531Z       "stages": {
2026-06-15T09:27:05.0621626Z         "doc": {
2026-06-15T09:27:05.0621741Z           "complete": false,
2026-06-15T09:27:05.0621845Z           "evidence": []
2026-06-15T09:27:05.0621941Z         },
2026-06-15T09:27:05.0622042Z         "impl": {
2026-06-15T09:27:05.0622159Z           "complete": true,
2026-06-15T09:27:05.0622273Z           "evidence": [
2026-06-15T09:27:05.0622369Z             {
2026-06-15T09:27:05.0622530Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.0622640Z               "line": 616
2026-06-15T09:27:05.0622746Z             },
2026-06-15T09:27:05.0622845Z             {
2026-06-15T09:27:05.0623009Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.0623127Z               "line": 693
2026-06-15T09:27:05.0623222Z             },
2026-06-15T09:27:05.0623319Z             {
2026-06-15T09:27:05.0623460Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-15T09:27:05.0623571Z               "line": 13
2026-06-15T09:27:05.0623666Z             },
2026-06-15T09:27:05.0623771Z             {
2026-06-15T09:27:05.0623915Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-15T09:27:05.0624018Z               "line": 67
2026-06-15T09:27:05.0624118Z             },
2026-06-15T09:27:05.0624220Z             {
2026-06-15T09:27:05.0624361Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T09:27:05.0624456Z               "line": 18
2026-06-15T09:27:05.0624556Z             },
2026-06-15T09:27:05.0624655Z             {
2026-06-15T09:27:05.0624787Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T09:27:05.0624893Z               "line": 444
2026-06-15T09:27:05.0624998Z             }
2026-06-15T09:27:05.0625097Z           ]
2026-06-15T09:27:05.0625193Z         },
2026-06-15T09:27:05.0625293Z         "int": {
2026-06-15T09:27:05.0625412Z           "complete": false,
2026-06-15T09:27:05.0625528Z           "evidence": []
2026-06-15T09:27:05.0625627Z         },
2026-06-15T09:27:05.0625961Z         "unit": {
2026-06-15T09:27:05.0626080Z           "complete": true,
2026-06-15T09:27:05.0626191Z           "evidence": [
2026-06-15T09:27:05.0626295Z             {
2026-06-15T09:27:05.0626443Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.0626552Z               "line": 900
2026-06-15T09:27:05.0626652Z             },
2026-06-15T09:27:05.0626758Z             {
2026-06-15T09:27:05.0626904Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.0627010Z               "line": 1233
2026-06-15T09:27:05.0627111Z             },
2026-06-15T09:27:05.0627210Z             {
2026-06-15T09:27:05.0627351Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.0627564Z               "line": 1244
2026-06-15T09:27:05.0627659Z             },
2026-06-15T09:27:05.0627750Z             {
2026-06-15T09:27:05.0627893Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.0628007Z               "line": 1260
2026-06-15T09:27:05.0628118Z             },
2026-06-15T09:27:05.0628218Z             {
2026-06-15T09:27:05.0628361Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.0628470Z               "line": 1276
2026-06-15T09:27:05.0628565Z             },
2026-06-15T09:27:05.0628666Z             {
2026-06-15T09:27:05.0628809Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.0628923Z               "line": 1298
2026-06-15T09:27:05.0629100Z             },
2026-06-15T09:27:05.0629194Z             {
2026-06-15T09:27:05.0629349Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.0629462Z               "line": 1603
2026-06-15T09:27:05.0629572Z             },
2026-06-15T09:27:05.0629683Z             {
2026-06-15T09:27:05.0629824Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-15T09:27:05.0629928Z               "line": 130
2026-06-15T09:27:05.0630028Z             },
2026-06-15T09:27:05.0630127Z             {
2026-06-15T09:27:05.0630278Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-15T09:27:05.0630385Z               "line": 167
2026-06-15T09:27:05.0630479Z             },
2026-06-15T09:27:05.0630579Z             {
2026-06-15T09:27:05.0630714Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-15T09:27:05.0630817Z               "line": 175
2026-06-15T09:27:05.0630913Z             },
2026-06-15T09:27:05.0631013Z             {
2026-06-15T09:27:05.0631146Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-15T09:27:05.0631257Z               "line": 183
2026-06-15T09:27:05.0631357Z             },
2026-06-15T09:27:05.0631457Z             {
2026-06-15T09:27:05.0631596Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T09:27:05.0631705Z               "line": 896
2026-06-15T09:27:05.0631809Z             }
2026-06-15T09:27:05.0631906Z           ]
2026-06-15T09:27:05.0632000Z         }
2026-06-15T09:27:05.0632101Z       }
2026-06-15T09:27:05.0632201Z     },
2026-06-15T09:27:05.0632306Z     {
2026-06-15T09:27:05.0632425Z       "id": "REQ-INST-11",
2026-06-15T09:27:05.0632672Z       "title": "spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)",
2026-06-15T09:27:05.0632790Z       "requiredStages": [
2026-06-15T09:27:05.0632891Z         "impl",
2026-06-15T09:27:05.0632992Z         "unit"
2026-06-15T09:27:05.0635710Z       ],
2026-06-15T09:27:05.0635844Z       "stages": {
2026-06-15T09:27:05.0635948Z         "doc": {
2026-06-15T09:27:05.0636073Z           "complete": false,
2026-06-15T09:27:05.0636187Z           "evidence": []
2026-06-15T09:27:05.0636272Z         },
2026-06-15T09:27:05.0636378Z         "impl": {
2026-06-15T09:27:05.0636492Z           "complete": true,
2026-06-15T09:27:05.0636616Z           "evidence": [
2026-06-15T09:27:05.0636712Z             {
2026-06-15T09:27:05.0636883Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.0636993Z               "line": 482
2026-06-15T09:27:05.0637085Z             },
2026-06-15T09:27:05.0637188Z             {
2026-06-15T09:27:05.0637493Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:27:05.0637599Z               "line": 297
2026-06-15T09:27:05.0637700Z             },
2026-06-15T09:27:05.0637798Z             {
2026-06-15T09:27:05.0637940Z               "path": "crates/spt-store/src/rename.rs",
2026-06-15T09:27:05.0638046Z               "line": 59
2026-06-15T09:27:05.0638148Z             },
2026-06-15T09:27:05.0638247Z             {
2026-06-15T09:27:05.0638378Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0638482Z               "line": 4736
2026-06-15T09:27:05.0638577Z             },
2026-06-15T09:27:05.0638678Z             {
2026-06-15T09:27:05.0638906Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0639097Z               "line": 6051
2026-06-15T09:27:05.0639197Z             }
2026-06-15T09:27:05.0639298Z           ]
2026-06-15T09:27:05.0639397Z         },
2026-06-15T09:27:05.0639512Z         "int": {
2026-06-15T09:27:05.0639628Z           "complete": false,
2026-06-15T09:27:05.0639745Z           "evidence": []
2026-06-15T09:27:05.0639855Z         },
2026-06-15T09:27:05.0639956Z         "unit": {
2026-06-15T09:27:05.0640069Z           "complete": true,
2026-06-15T09:27:05.0640165Z           "evidence": [
2026-06-15T09:27:05.0640262Z             {
2026-06-15T09:27:05.0640417Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.0640522Z               "line": 1403
2026-06-15T09:27:05.0640621Z             },
2026-06-15T09:27:05.0640720Z             {
2026-06-15T09:27:05.0640877Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.0640978Z               "line": 1436
2026-06-15T09:27:05.0641082Z             },
2026-06-15T09:27:05.0641182Z             {
2026-06-15T09:27:05.0641340Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:27:05.0641454Z               "line": 527
2026-06-15T09:27:05.0641555Z             },
2026-06-15T09:27:05.0641654Z             {
2026-06-15T09:27:05.0641798Z               "path": "crates/spt-store/src/rename.rs",
2026-06-15T09:27:05.0641912Z               "line": 160
2026-06-15T09:27:05.0642012Z             },
2026-06-15T09:27:05.0642112Z             {
2026-06-15T09:27:05.0642251Z               "path": "crates/spt-store/src/rename.rs",
2026-06-15T09:27:05.0642355Z               "line": 190
2026-06-15T09:27:05.0642451Z             },
2026-06-15T09:27:05.0642551Z             {
2026-06-15T09:27:05.0642694Z               "path": "crates/spt-store/src/rename.rs",
2026-06-15T09:27:05.0642795Z               "line": 225
2026-06-15T09:27:05.0642894Z             },
2026-06-15T09:27:05.0642994Z             {
2026-06-15T09:27:05.0643129Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0643237Z               "line": 6440
2026-06-15T09:27:05.0643327Z             }
2026-06-15T09:27:05.0643427Z           ]
2026-06-15T09:27:05.0643528Z         }
2026-06-15T09:27:05.0643627Z       }
2026-06-15T09:27:05.0643722Z     },
2026-06-15T09:27:05.0643824Z     {
2026-06-15T09:27:05.0643937Z       "id": "REQ-INST-12",
2026-06-15T09:27:05.0644276Z       "title": "Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync",
2026-06-15T09:27:05.0644396Z       "requiredStages": [
2026-06-15T09:27:05.0644500Z         "impl",
2026-06-15T09:27:05.0644600Z         "unit"
2026-06-15T09:27:05.0644701Z       ],
2026-06-15T09:27:05.0644806Z       "stages": {
2026-06-15T09:27:05.0644910Z         "doc": {
2026-06-15T09:27:05.0645031Z           "complete": false,
2026-06-15T09:27:05.0645130Z           "evidence": []
2026-06-15T09:27:05.0645230Z         },
2026-06-15T09:27:05.0645330Z         "impl": {
2026-06-15T09:27:05.0645450Z           "complete": true,
2026-06-15T09:27:05.0645553Z           "evidence": [
2026-06-15T09:27:05.0645653Z             {
2026-06-15T09:27:05.0645809Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.0645922Z               "line": 534
2026-06-15T09:27:05.0646018Z             },
2026-06-15T09:27:05.0646232Z             {
2026-06-15T09:27:05.0646376Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.0646476Z               "line": 627
2026-06-15T09:27:05.0646580Z             },
2026-06-15T09:27:05.0646681Z             {
2026-06-15T09:27:05.0646819Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.0646919Z               "line": 707
2026-06-15T09:27:05.0647015Z             },
2026-06-15T09:27:05.0647119Z             {
2026-06-15T09:27:05.0647253Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T09:27:05.0647372Z               "line": 96
2026-06-15T09:27:05.0647472Z             },
2026-06-15T09:27:05.0647668Z             {
2026-06-15T09:27:05.0647805Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T09:27:05.0647916Z               "line": 269
2026-06-15T09:27:05.0648011Z             },
2026-06-15T09:27:05.0648111Z             {
2026-06-15T09:27:05.0648265Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T09:27:05.0648372Z               "line": 135
2026-06-15T09:27:05.0648477Z             }
2026-06-15T09:27:05.0648572Z           ]
2026-06-15T09:27:05.0648671Z         },
2026-06-15T09:27:05.0648784Z         "int": {
2026-06-15T09:27:05.0648894Z           "complete": false,
2026-06-15T09:27:05.0649080Z           "evidence": []
2026-06-15T09:27:05.0649185Z         },
2026-06-15T09:27:05.0649281Z         "unit": {
2026-06-15T09:27:05.0649390Z           "complete": true,
2026-06-15T09:27:05.0649491Z           "evidence": [
2026-06-15T09:27:05.0649591Z             {
2026-06-15T09:27:05.0649738Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.0649854Z               "line": 1478
2026-06-15T09:27:05.0649953Z             },
2026-06-15T09:27:05.0650053Z             {
2026-06-15T09:27:05.0650207Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.0650315Z               "line": 1501
2026-06-15T09:27:05.0650410Z             },
2026-06-15T09:27:05.0650512Z             {
2026-06-15T09:27:05.0650649Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.0650750Z               "line": 1538
2026-06-15T09:27:05.0650850Z             },
2026-06-15T09:27:05.0650949Z             {
2026-06-15T09:27:05.0651087Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T09:27:05.0651200Z               "line": 457
2026-06-15T09:27:05.0651294Z             },
2026-06-15T09:27:05.0651394Z             {
2026-06-15T09:27:05.0651534Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T09:27:05.0651632Z               "line": 172
2026-06-15T09:27:05.0651733Z             },
2026-06-15T09:27:05.0651829Z             {
2026-06-15T09:27:05.0651976Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T09:27:05.0652077Z               "line": 193
2026-06-15T09:27:05.0652181Z             },
2026-06-15T09:27:05.0652286Z             {
2026-06-15T09:27:05.0652425Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T09:27:05.0652543Z               "line": 219
2026-06-15T09:27:05.0652648Z             }
2026-06-15T09:27:05.0652745Z           ]
2026-06-15T09:27:05.0652844Z         }
2026-06-15T09:27:05.0652939Z       }
2026-06-15T09:27:05.0653041Z     },
2026-06-15T09:27:05.0653139Z     {
2026-06-15T09:27:05.0653244Z       "id": "REQ-INST-13",
2026-06-15T09:27:05.0653459Z       "title": "Subnet-exclusive sync + per-endpoint subnet-membership list",
2026-06-15T09:27:05.0653583Z       "requiredStages": [
2026-06-15T09:27:05.0653680Z         "impl",
2026-06-15T09:27:05.0653783Z         "unit"
2026-06-15T09:27:05.0653882Z       ],
2026-06-15T09:27:05.0653992Z       "stages": {
2026-06-15T09:27:05.0654088Z         "doc": {
2026-06-15T09:27:05.0654202Z           "complete": false,
2026-06-15T09:27:05.0654312Z           "evidence": []
2026-06-15T09:27:05.0654407Z         },
2026-06-15T09:27:05.0654512Z         "impl": {
2026-06-15T09:27:05.0654622Z           "complete": true,
2026-06-15T09:27:05.0654817Z           "evidence": [
2026-06-15T09:27:05.0654917Z             {
2026-06-15T09:27:05.0655056Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T09:27:05.0655155Z               "line": 100
2026-06-15T09:27:05.0655256Z             },
2026-06-15T09:27:05.0655361Z             {
2026-06-15T09:27:05.0655508Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T09:27:05.0655614Z               "line": 158
2026-06-15T09:27:05.0655713Z             }
2026-06-15T09:27:05.0655818Z           ]
2026-06-15T09:27:05.0655948Z         },
2026-06-15T09:27:05.0656052Z         "int": {
2026-06-15T09:27:05.0656161Z           "complete": false,
2026-06-15T09:27:05.0656392Z           "evidence": []
2026-06-15T09:27:05.0656492Z         },
2026-06-15T09:27:05.0656587Z         "unit": {
2026-06-15T09:27:05.0656702Z           "complete": true,
2026-06-15T09:27:05.0656811Z           "evidence": [
2026-06-15T09:27:05.0656902Z             {
2026-06-15T09:27:05.0657045Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T09:27:05.0657154Z               "line": 248
2026-06-15T09:27:05.0657256Z             },
2026-06-15T09:27:05.0657355Z             {
2026-06-15T09:27:05.0657504Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T09:27:05.0657608Z               "line": 266
2026-06-15T09:27:05.0657703Z             }
2026-06-15T09:27:05.0657803Z           ]
2026-06-15T09:27:05.0657904Z         }
2026-06-15T09:27:05.0658004Z       }
2026-06-15T09:27:05.0658104Z     },
2026-06-15T09:27:05.0658200Z     {
2026-06-15T09:27:05.0658318Z       "id": "REQ-INST-14",
2026-06-15T09:27:05.0658734Z       "title": "Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated",
2026-06-15T09:27:05.0658854Z       "requiredStages": [
2026-06-15T09:27:05.0659027Z         "doc",
2026-06-15T09:27:05.0659132Z         "impl",
2026-06-15T09:27:05.0659241Z         "unit"
2026-06-15T09:27:05.0659335Z       ],
2026-06-15T09:27:05.0659440Z       "stages": {
2026-06-15T09:27:05.0659536Z         "doc": {
2026-06-15T09:27:05.0659640Z           "complete": true,
2026-06-15T09:27:05.0659746Z           "evidence": [
2026-06-15T09:27:05.0659836Z             {
2026-06-15T09:27:05.0659959Z               "path": "CONTEXT.md",
2026-06-15T09:27:05.0660061Z               "line": 530
2026-06-15T09:27:05.0660160Z             },
2026-06-15T09:27:05.0660260Z             {
2026-06-15T09:27:05.0660385Z               "path": "docs/STORAGE.md",
2026-06-15T09:27:05.0660485Z               "line": 49
2026-06-15T09:27:05.0660584Z             }
2026-06-15T09:27:05.0660685Z           ]
2026-06-15T09:27:05.0660786Z         },
2026-06-15T09:27:05.0660885Z         "impl": {
2026-06-15T09:27:05.0661000Z           "complete": true,
2026-06-15T09:27:05.0661101Z           "evidence": [
2026-06-15T09:27:05.0661199Z             {
2026-06-15T09:27:05.0661358Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:05.0661467Z               "line": 404
2026-06-15T09:27:05.0661556Z             },
2026-06-15T09:27:05.0661661Z             {
2026-06-15T09:27:05.0661802Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.0661911Z               "line": 346
2026-06-15T09:27:05.0662012Z             },
2026-06-15T09:27:05.0662113Z             {
2026-06-15T09:27:05.0662254Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T09:27:05.0662356Z               "line": 221
2026-06-15T09:27:05.0662456Z             },
2026-06-15T09:27:05.0662560Z             {
2026-06-15T09:27:05.0662680Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0662789Z               "line": 1372
2026-06-15T09:27:05.0662893Z             }
2026-06-15T09:27:05.0662995Z           ]
2026-06-15T09:27:05.0663094Z         },
2026-06-15T09:27:05.0663194Z         "int": {
2026-06-15T09:27:05.0663324Z           "complete": false,
2026-06-15T09:27:05.0663447Z           "evidence": []
2026-06-15T09:27:05.0663552Z         },
2026-06-15T09:27:05.0663752Z         "unit": {
2026-06-15T09:27:05.0663867Z           "complete": true,
2026-06-15T09:27:05.0663977Z           "evidence": [
2026-06-15T09:27:05.0664076Z             {
2026-06-15T09:27:05.0664230Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:05.0664334Z               "line": 1111
2026-06-15T09:27:05.0664438Z             },
2026-06-15T09:27:05.0664533Z             {
2026-06-15T09:27:05.0664677Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.0664771Z               "line": 912
2026-06-15T09:27:05.0664867Z             },
2026-06-15T09:27:05.0664967Z             {
2026-06-15T09:27:05.0665211Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.0665320Z               "line": 1173
2026-06-15T09:27:05.0665420Z             },
2026-06-15T09:27:05.0665516Z             {
2026-06-15T09:27:05.0665654Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T09:27:05.0665758Z               "line": 490
2026-06-15T09:27:05.0665865Z             },
2026-06-15T09:27:05.0665964Z             {
2026-06-15T09:27:05.0666087Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0666184Z               "line": 6516
2026-06-15T09:27:05.0666283Z             }
2026-06-15T09:27:05.0666378Z           ]
2026-06-15T09:27:05.0666480Z         }
2026-06-15T09:27:05.0666578Z       }
2026-06-15T09:27:05.0666673Z     },
2026-06-15T09:27:05.0666768Z     {
2026-06-15T09:27:05.0666873Z       "id": "REQ-INST-15",
2026-06-15T09:27:05.0667639Z       "title": "Immutable home subnet (assigned at creation: auto-if-one/ask-if-many) + spt fork (cross-subnet clone to a new identity, copy-then-diverge, not re-home); adapter chosen at creation from registered hostable adapters, changed only via launch/resume-under-new (ADR-0010)",
2026-06-15T09:27:05.0667759Z       "requiredStages": [
2026-06-15T09:27:05.0667859Z         "doc",
2026-06-15T09:27:05.0667967Z         "impl",
2026-06-15T09:27:05.0668059Z         "unit"
2026-06-15T09:27:05.0668164Z       ],
2026-06-15T09:27:05.0668263Z       "stages": {
2026-06-15T09:27:05.0668359Z         "doc": {
2026-06-15T09:27:05.0668473Z           "complete": true,
2026-06-15T09:27:05.0668578Z           "evidence": [
2026-06-15T09:27:05.0668678Z             {
2026-06-15T09:27:05.0668883Z               "path": "docs/adr/0010-immutable-home-subnet-fork-not-rehome.md",
2026-06-15T09:27:05.0669065Z               "line": 3
2026-06-15T09:27:05.0669164Z             }
2026-06-15T09:27:05.0669264Z           ]
2026-06-15T09:27:05.0669362Z         },
2026-06-15T09:27:05.0669460Z         "impl": {
2026-06-15T09:27:05.0669573Z           "complete": true,
2026-06-15T09:27:05.0669688Z           "evidence": [
2026-06-15T09:27:05.0669782Z             {
2026-06-15T09:27:05.0669938Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:05.0670044Z               "line": 353
2026-06-15T09:27:05.0670148Z             },
2026-06-15T09:27:05.0670248Z             {
2026-06-15T09:27:05.0670383Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T09:27:05.0670487Z               "line": 60
2026-06-15T09:27:05.0670582Z             },
2026-06-15T09:27:05.0670683Z             {
2026-06-15T09:27:05.0670839Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:27:05.0670940Z               "line": 368
2026-06-15T09:27:05.0671040Z             },
2026-06-15T09:27:05.0671140Z             {
2026-06-15T09:27:05.0671293Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:27:05.0671402Z               "line": 417
2026-06-15T09:27:05.0671497Z             },
2026-06-15T09:27:05.0671599Z             {
2026-06-15T09:27:05.0671735Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T09:27:05.0671836Z               "line": 19
2026-06-15T09:27:05.0671933Z             },
2026-06-15T09:27:05.0672032Z             {
2026-06-15T09:27:05.0672164Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T09:27:05.0672274Z               "line": 70
2026-06-15T09:27:05.0672486Z             },
2026-06-15T09:27:05.0672586Z             {
2026-06-15T09:27:05.0672720Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T09:27:05.0672829Z               "line": 96
2026-06-15T09:27:05.0672930Z             },
2026-06-15T09:27:05.0673035Z             {
2026-06-15T09:27:05.0673163Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T09:27:05.0673264Z               "line": 121
2026-06-15T09:27:05.0673359Z             },
2026-06-15T09:27:05.0673458Z             {
2026-06-15T09:27:05.0673597Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T09:27:05.0673706Z               "line": 172
2026-06-15T09:27:05.0673908Z             },
2026-06-15T09:27:05.0674003Z             {
2026-06-15T09:27:05.0674142Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:27:05.0674255Z               "line": 146
2026-06-15T09:27:05.0674350Z             },
2026-06-15T09:27:05.0674447Z             {
2026-06-15T09:27:05.0674570Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0674684Z               "line": 1264
2026-06-15T09:27:05.0674785Z             }
2026-06-15T09:27:05.0674885Z           ]
2026-06-15T09:27:05.0674984Z         },
2026-06-15T09:27:05.0675084Z         "int": {
2026-06-15T09:27:05.0675199Z           "complete": false,
2026-06-15T09:27:05.0675312Z           "evidence": []
2026-06-15T09:27:05.0675418Z         },
2026-06-15T09:27:05.0675523Z         "unit": {
2026-06-15T09:27:05.0675632Z           "complete": true,
2026-06-15T09:27:05.0675747Z           "evidence": [
2026-06-15T09:27:05.0675842Z             {
2026-06-15T09:27:05.0676004Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:27:05.0676119Z               "line": 577
2026-06-15T09:27:05.0676219Z             },
2026-06-15T09:27:05.0676319Z             {
2026-06-15T09:27:05.0676467Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:27:05.0676576Z               "line": 638
2026-06-15T09:27:05.0676672Z             },
2026-06-15T09:27:05.0676786Z             {
2026-06-15T09:27:05.0676919Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T09:27:05.0677035Z               "line": 213
2026-06-15T09:27:05.0677134Z             },
2026-06-15T09:27:05.0677233Z             {
2026-06-15T09:27:05.0677372Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T09:27:05.0677470Z               "line": 249
2026-06-15T09:27:05.0677569Z             },
2026-06-15T09:27:05.0677669Z             {
2026-06-15T09:27:05.0677808Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T09:27:05.0677917Z               "line": 262
2026-06-15T09:27:05.0678018Z             },
2026-06-15T09:27:05.0678113Z             {
2026-06-15T09:27:05.0678246Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T09:27:05.0678357Z               "line": 338
2026-06-15T09:27:05.0678456Z             },
2026-06-15T09:27:05.0678565Z             {
2026-06-15T09:27:05.0678704Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:27:05.0678814Z               "line": 543
2026-06-15T09:27:05.0678914Z             },
2026-06-15T09:27:05.0679086Z             {
2026-06-15T09:27:05.0679224Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0679320Z               "line": 6453
2026-06-15T09:27:05.0679429Z             },
2026-06-15T09:27:05.0679529Z             {
2026-06-15T09:27:05.0679654Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0679762Z               "line": 8097
2026-06-15T09:27:05.0679864Z             }
2026-06-15T09:27:05.0679959Z           ]
2026-06-15T09:27:05.0680058Z         }
2026-06-15T09:27:05.0680162Z       }
2026-06-15T09:27:05.0680267Z     },
2026-06-15T09:27:05.0680361Z     {
2026-06-15T09:27:05.0680479Z       "id": "REQ-INST-2",
2026-06-15T09:27:05.0680633Z       "title": "Per-node files, synced Psyche mind",
2026-06-15T09:27:05.0680746Z       "requiredStages": [
2026-06-15T09:27:05.0680842Z         "impl",
2026-06-15T09:27:05.0680943Z         "unit"
2026-06-15T09:27:05.0681152Z       ],
2026-06-15T09:27:05.0681248Z       "stages": {
2026-06-15T09:27:05.0681348Z         "doc": {
2026-06-15T09:27:05.0681467Z           "complete": false,
2026-06-15T09:27:05.0681577Z           "evidence": []
2026-06-15T09:27:05.0681677Z         },
2026-06-15T09:27:05.0681776Z         "impl": {
2026-06-15T09:27:05.0681891Z           "complete": true,
2026-06-15T09:27:05.0682000Z           "evidence": [
2026-06-15T09:27:05.0682101Z             {
2026-06-15T09:27:05.0682254Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:27:05.0682358Z               "line": 88
2026-06-15T09:27:05.0682460Z             },
2026-06-15T09:27:05.0682662Z             {
2026-06-15T09:27:05.0682801Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T09:27:05.0682904Z               "line": 28
2026-06-15T09:27:05.0682998Z             },
2026-06-15T09:27:05.0683094Z             {
2026-06-15T09:27:05.0683243Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T09:27:05.0683351Z               "line": 74
2026-06-15T09:27:05.0683457Z             },
2026-06-15T09:27:05.0683552Z             {
2026-06-15T09:27:05.0683695Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T09:27:05.0683796Z               "line": 96
2026-06-15T09:27:05.0683895Z             },
2026-06-15T09:27:05.0683994Z             {
2026-06-15T09:27:05.0684134Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T09:27:05.0684244Z               "line": 86
2026-06-15T09:27:05.0684357Z             },
2026-06-15T09:27:05.0684454Z             {
2026-06-15T09:27:05.0684600Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T09:27:05.0684716Z               "line": 118
2026-06-15T09:27:05.0684815Z             }
2026-06-15T09:27:05.0684915Z           ]
2026-06-15T09:27:05.0685012Z         },
2026-06-15T09:27:05.0685121Z         "int": {
2026-06-15T09:27:05.0685230Z           "complete": false,
2026-06-15T09:27:05.0685341Z           "evidence": []
2026-06-15T09:27:05.0685445Z         },
2026-06-15T09:27:05.0685548Z         "unit": {
2026-06-15T09:27:05.0685658Z           "complete": true,
2026-06-15T09:27:05.0685779Z           "evidence": [
2026-06-15T09:27:05.0685877Z             {
2026-06-15T09:27:05.0686001Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T09:27:05.0686107Z               "line": 250
2026-06-15T09:27:05.0686206Z             },
2026-06-15T09:27:05.0686307Z             {
2026-06-15T09:27:05.0686431Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T09:27:05.0686535Z               "line": 280
2026-06-15T09:27:05.0686627Z             }
2026-06-15T09:27:05.0686726Z           ]
2026-06-15T09:27:05.0686840Z         }
2026-06-15T09:27:05.0686937Z       }
2026-06-15T09:27:05.0687037Z     },
2026-06-15T09:27:05.0687132Z     {
2026-06-15T09:27:05.0687252Z       "id": "REQ-INST-3",
2026-06-15T09:27:05.0687431Z       "title": "Dormant (warm) / suspended (cold) resting states",
2026-06-15T09:27:05.0687546Z       "requiredStages": [
2026-06-15T09:27:05.0687648Z         "doc",
2026-06-15T09:27:05.0687746Z         "impl",
2026-06-15T09:27:05.0687850Z         "unit"
2026-06-15T09:27:05.0687951Z       ],
2026-06-15T09:27:05.0688049Z       "stages": {
2026-06-15T09:27:05.0688148Z         "doc": {
2026-06-15T09:27:05.0688259Z           "complete": true,
2026-06-15T09:27:05.0688359Z           "evidence": [
2026-06-15T09:27:05.0688458Z             {
2026-06-15T09:27:05.0688597Z               "path": "docs/DORMANCY-BUDGET.md",
2026-06-15T09:27:05.0688697Z               "line": 3
2026-06-15T09:27:05.0688801Z             }
2026-06-15T09:27:05.0688903Z           ]
2026-06-15T09:27:05.0689068Z         },
2026-06-15T09:27:05.0689170Z         "impl": {
2026-06-15T09:27:05.0689274Z           "complete": true,
2026-06-15T09:27:05.0689388Z           "evidence": [
2026-06-15T09:27:05.0689489Z             {
2026-06-15T09:27:05.0689631Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-15T09:27:05.0689746Z               "line": 59
2026-06-15T09:27:05.0689927Z             },
2026-06-15T09:27:05.0690027Z             {
2026-06-15T09:27:05.0690172Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T09:27:05.0690279Z               "line": 480
2026-06-15T09:27:05.0690376Z             },
2026-06-15T09:27:05.0690477Z             {
2026-06-15T09:27:05.0690637Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:27:05.0690736Z               "line": 204
2026-06-15T09:27:05.0690832Z             },
2026-06-15T09:27:05.0690930Z             {
2026-06-15T09:27:05.0691092Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:27:05.0691193Z               "line": 334
2026-06-15T09:27:05.0691416Z             },
2026-06-15T09:27:05.0691526Z             {
2026-06-15T09:27:05.0691664Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:27:05.0691770Z               "line": 368
2026-06-15T09:27:05.0691874Z             },
2026-06-15T09:27:05.0691974Z             {
2026-06-15T09:27:05.0692132Z               "path": "crates/spt-daemon/src/pump/sync.rs",
2026-06-15T09:27:05.0692237Z               "line": 74
2026-06-15T09:27:05.0692336Z             },
2026-06-15T09:27:05.0692437Z             {
2026-06-15T09:27:05.0692594Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:05.0692695Z               "line": 234
2026-06-15T09:27:05.0692795Z             },
2026-06-15T09:27:05.0692894Z             {
2026-06-15T09:27:05.0693039Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:05.0693138Z               "line": 390
2026-06-15T09:27:05.0693236Z             },
2026-06-15T09:27:05.0693337Z             {
2026-06-15T09:27:05.0693483Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:27:05.0693601Z               "line": 45
2026-06-15T09:27:05.0693702Z             },
2026-06-15T09:27:05.0693803Z             {
2026-06-15T09:27:05.0693950Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:27:05.0694055Z               "line": 114
2026-06-15T09:27:05.0694160Z             },
2026-06-15T09:27:05.0694264Z             {
2026-06-15T09:27:05.0694403Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:27:05.0694517Z               "line": 152
2026-06-15T09:27:05.0694623Z             },
2026-06-15T09:27:05.0694723Z             {
2026-06-15T09:27:05.0694865Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:27:05.0694966Z               "line": 168
2026-06-15T09:27:05.0695066Z             },
2026-06-15T09:27:05.0695161Z             {
2026-06-15T09:27:05.0695300Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:27:05.0695404Z               "line": 178
2026-06-15T09:27:05.0695504Z             },
2026-06-15T09:27:05.0695605Z             {
2026-06-15T09:27:05.0695766Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:27:05.0695872Z               "line": 210
2026-06-15T09:27:05.0695977Z             },
2026-06-15T09:27:05.0696080Z             {
2026-06-15T09:27:05.0696223Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:27:05.0696339Z               "line": 287
2026-06-15T09:27:05.0696442Z             },
2026-06-15T09:27:05.0696543Z             {
2026-06-15T09:27:05.0696682Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:27:05.0696790Z               "line": 311
2026-06-15T09:27:05.0696891Z             },
2026-06-15T09:27:05.0696991Z             {
2026-06-15T09:27:05.0697134Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:27:05.0697244Z               "line": 389
2026-06-15T09:27:05.0697344Z             },
2026-06-15T09:27:05.0697444Z             {
2026-06-15T09:27:05.0697592Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:27:05.0697701Z               "line": 438
2026-06-15T09:27:05.0697797Z             },
2026-06-15T09:27:05.0697902Z             {
2026-06-15T09:27:05.0698039Z               "path": "crates/spt-daemon/tests/budget.rs",
2026-06-15T09:27:05.0698222Z               "line": 37
2026-06-15T09:27:05.0698316Z             },
2026-06-15T09:27:05.0698415Z             {
2026-06-15T09:27:05.0698563Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.0698666Z               "line": 62
2026-06-15T09:27:05.0698766Z             },
2026-06-15T09:27:05.0698871Z             {
2026-06-15T09:27:05.0699095Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T09:27:05.0699210Z               "line": 200
2026-06-15T09:27:05.0699314Z             },
2026-06-15T09:27:05.0699415Z             {
2026-06-15T09:27:05.0699548Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0699662Z               "line": 1597
2026-06-15T09:27:05.0699863Z             }
2026-06-15T09:27:05.0699972Z           ]
2026-06-15T09:27:05.0700073Z         },
2026-06-15T09:27:05.0700177Z         "int": {
2026-06-15T09:27:05.0700306Z           "complete": false,
2026-06-15T09:27:05.0700407Z           "evidence": []
2026-06-15T09:27:05.0700506Z         },
2026-06-15T09:27:05.0700616Z         "unit": {
2026-06-15T09:27:05.0700727Z           "complete": true,
2026-06-15T09:27:05.0700835Z           "evidence": [
2026-06-15T09:27:05.0700931Z             {
2026-06-15T09:27:05.0701085Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T09:27:05.0701178Z               "line": 360
2026-06-15T09:27:05.0701272Z             },
2026-06-15T09:27:05.0701373Z             {
2026-06-15T09:27:05.0701514Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:27:05.0701628Z               "line": 787
2026-06-15T09:27:05.0701729Z             },
2026-06-15T09:27:05.0701828Z             {
2026-06-15T09:27:05.0701981Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:27:05.0702082Z               "line": 844
2026-06-15T09:27:05.0702176Z             },
2026-06-15T09:27:05.0702277Z             {
2026-06-15T09:27:05.0702415Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:27:05.0702515Z               "line": 889
2026-06-15T09:27:05.0702620Z             },
2026-06-15T09:27:05.0702720Z             {
2026-06-15T09:27:05.0702863Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:27:05.0702965Z               "line": 1014
2026-06-15T09:27:05.0703068Z             },
2026-06-15T09:27:05.0703168Z             {
2026-06-15T09:27:05.0703313Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:05.0703426Z               "line": 1212
2026-06-15T09:27:05.0703526Z             },
2026-06-15T09:27:05.0703632Z             {
2026-06-15T09:27:05.0703783Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:05.0703901Z               "line": 1353
2026-06-15T09:27:05.0704001Z             },
2026-06-15T09:27:05.0704100Z             {
2026-06-15T09:27:05.0704238Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:27:05.0704344Z               "line": 449
2026-06-15T09:27:05.0704448Z             },
2026-06-15T09:27:05.0704548Z             {
2026-06-15T09:27:05.0704696Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:27:05.0704800Z               "line": 485
2026-06-15T09:27:05.0704892Z             },
2026-06-15T09:27:05.0704996Z             {
2026-06-15T09:27:05.0705129Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:27:05.0705245Z               "line": 540
2026-06-15T09:27:05.0705344Z             },
2026-06-15T09:27:05.0705444Z             {
2026-06-15T09:27:05.0705583Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:27:05.0705683Z               "line": 697
2026-06-15T09:27:05.0705778Z             },
2026-06-15T09:27:05.0705874Z             {
2026-06-15T09:27:05.0706031Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:27:05.0706142Z               "line": 931
2026-06-15T09:27:05.0706241Z             },
2026-06-15T09:27:05.0706346Z             {
2026-06-15T09:27:05.0706476Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:27:05.0706688Z               "line": 945
2026-06-15T09:27:05.0706788Z             },
2026-06-15T09:27:05.0706889Z             {
2026-06-15T09:27:05.0707040Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.0707146Z               "line": 1214
2026-06-15T09:27:05.0707242Z             },
2026-06-15T09:27:05.0707345Z             {
2026-06-15T09:27:05.0707485Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T09:27:05.0707585Z               "line": 440
2026-06-15T09:27:05.0707679Z             },
2026-06-15T09:27:05.0707780Z             {
2026-06-15T09:27:05.0707899Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0708081Z               "line": 6477
2026-06-15T09:27:05.0708185Z             }
2026-06-15T09:27:05.0708285Z           ]
2026-06-15T09:27:05.0708387Z         }
2026-06-15T09:27:05.0708486Z       }
2026-06-15T09:27:05.0708586Z     },
2026-06-15T09:27:05.0708686Z     {
2026-06-15T09:27:05.0708801Z       "id": "REQ-INST-4",
2026-06-15T09:27:05.0709080Z       "title": "active to dormant/suspended fires a transition echo commune",
2026-06-15T09:27:05.0709193Z       "requiredStages": [
2026-06-15T09:27:05.0709297Z         "impl",
2026-06-15T09:27:05.0709393Z         "unit"
2026-06-15T09:27:05.0709493Z       ],
2026-06-15T09:27:05.0709593Z       "stages": {
2026-06-15T09:27:05.0709693Z         "doc": {
2026-06-15T09:27:05.0709808Z           "complete": false,
2026-06-15T09:27:05.0709922Z           "evidence": []
2026-06-15T09:27:05.0710023Z         },
2026-06-15T09:27:05.0710133Z         "impl": {
2026-06-15T09:27:05.0710246Z           "complete": true,
2026-06-15T09:27:05.0710352Z           "evidence": [
2026-06-15T09:27:05.0710462Z             {
2026-06-15T09:27:05.0710604Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:27:05.0710714Z               "line": 335
2026-06-15T09:27:05.0710814Z             },
2026-06-15T09:27:05.0710909Z             {
2026-06-15T09:27:05.0713628Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:27:05.0713781Z               "line": 202
2026-06-15T09:27:05.0713883Z             },
2026-06-15T09:27:05.0713981Z             {
2026-06-15T09:27:05.0714144Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:27:05.0714253Z               "line": 234
2026-06-15T09:27:05.0714353Z             },
2026-06-15T09:27:05.0714452Z             {
2026-06-15T09:27:05.0714594Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:27:05.0714707Z               "line": 274
2026-06-15T09:27:05.0714798Z             }
2026-06-15T09:27:05.0714899Z           ]
2026-06-15T09:27:05.0714998Z         },
2026-06-15T09:27:05.0715098Z         "int": {
2026-06-15T09:27:05.0715223Z           "complete": false,
2026-06-15T09:27:05.0715322Z           "evidence": []
2026-06-15T09:27:05.0715423Z         },
2026-06-15T09:27:05.0715523Z         "unit": {
2026-06-15T09:27:05.0715637Z           "complete": true,
2026-06-15T09:27:05.0715733Z           "evidence": [
2026-06-15T09:27:05.0715838Z             {
2026-06-15T09:27:05.0715999Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:27:05.0716097Z               "line": 839
2026-06-15T09:27:05.0716190Z             },
2026-06-15T09:27:05.0716291Z             {
2026-06-15T09:27:05.0716439Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:27:05.0716538Z               "line": 561
2026-06-15T09:27:05.0716643Z             },
2026-06-15T09:27:05.0716745Z             {
2026-06-15T09:27:05.0716877Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:27:05.0716988Z               "line": 668
2026-06-15T09:27:05.0717088Z             },
2026-06-15T09:27:05.0717196Z             {
2026-06-15T09:27:05.0717324Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:27:05.0717430Z               "line": 750
2026-06-15T09:27:05.0717530Z             }
2026-06-15T09:27:05.0717620Z           ]
2026-06-15T09:27:05.0717721Z         }
2026-06-15T09:27:05.0717816Z       }
2026-06-15T09:27:05.0718045Z     },
2026-06-15T09:27:05.0718145Z     {
2026-06-15T09:27:05.0718259Z       "id": "REQ-INST-5",
2026-06-15T09:27:05.0718479Z       "title": "Two-tier context sync (live to all, project to same-project)",
2026-06-15T09:27:05.0718588Z       "requiredStages": [
2026-06-15T09:27:05.0718684Z         "impl",
2026-06-15T09:27:05.0718783Z         "unit",
2026-06-15T09:27:05.0718883Z         "int"
2026-06-15T09:27:05.0719060Z       ],
2026-06-15T09:27:05.0719160Z       "stages": {
2026-06-15T09:27:05.0719266Z         "doc": {
2026-06-15T09:27:05.0719379Z           "complete": false,
2026-06-15T09:27:05.0719488Z           "evidence": []
2026-06-15T09:27:05.0719588Z         },
2026-06-15T09:27:05.0719781Z         "impl": {
2026-06-15T09:27:05.0719901Z           "complete": true,
2026-06-15T09:27:05.0720001Z           "evidence": [
2026-06-15T09:27:05.0720096Z             {
2026-06-15T09:27:05.0720254Z               "path": "crates/spt-daemon/src/pump/sync.rs",
2026-06-15T09:27:05.0720354Z               "line": 85
2026-06-15T09:27:05.0720453Z             },
2026-06-15T09:27:05.0720555Z             {
2026-06-15T09:27:05.0720702Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T09:27:05.0720801Z               "line": 68
2026-06-15T09:27:05.0720903Z             },
2026-06-15T09:27:05.0721007Z             {
2026-06-15T09:27:05.0721150Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T09:27:05.0721246Z               "line": 99
2026-06-15T09:27:05.0721346Z             },
2026-06-15T09:27:05.0721445Z             {
2026-06-15T09:27:05.0721580Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T09:27:05.0721689Z               "line": 183
2026-06-15T09:27:05.0721789Z             },
2026-06-15T09:27:05.0721890Z             {
2026-06-15T09:27:05.0722028Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T09:27:05.0722143Z               "line": 314
2026-06-15T09:27:05.0722247Z             }
2026-06-15T09:27:05.0722341Z           ]
2026-06-15T09:27:05.0722441Z         },
2026-06-15T09:27:05.0722541Z         "int": {
2026-06-15T09:27:05.0722658Z           "complete": true,
2026-06-15T09:27:05.0722758Z           "evidence": [
2026-06-15T09:27:05.0722859Z             {
2026-06-15T09:27:05.0723015Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T09:27:05.0723126Z               "line": 156
2026-06-15T09:27:05.0723221Z             },
2026-06-15T09:27:05.0723325Z             {
2026-06-15T09:27:05.0723474Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-15T09:27:05.0723579Z               "line": 102
2026-06-15T09:27:05.0723678Z             },
2026-06-15T09:27:05.0723775Z             {
2026-06-15T09:27:05.0723922Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:27:05.0724022Z               "line": 638
2026-06-15T09:27:05.0724123Z             },
2026-06-15T09:27:05.0724221Z             {
2026-06-15T09:27:05.0724361Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:27:05.0724471Z               "line": 975
2026-06-15T09:27:05.0724575Z             }
2026-06-15T09:27:05.0724681Z           ]
2026-06-15T09:27:05.0724823Z         },
2026-06-15T09:27:05.0724917Z         "unit": {
2026-06-15T09:27:05.0725031Z           "complete": true,
2026-06-15T09:27:05.0725131Z           "evidence": [
2026-06-15T09:27:05.0725234Z             {
2026-06-15T09:27:05.0725373Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T09:27:05.0725469Z               "line": 552
2026-06-15T09:27:05.0725563Z             },
2026-06-15T09:27:05.0725659Z             {
2026-06-15T09:27:05.0725798Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T09:27:05.0725902Z               "line": 595
2026-06-15T09:27:05.0725998Z             },
2026-06-15T09:27:05.0726098Z             {
2026-06-15T09:27:05.0726235Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-15T09:27:05.0726346Z               "line": 219
2026-06-15T09:27:05.0726445Z             }
2026-06-15T09:27:05.0726546Z           ]
2026-06-15T09:27:05.0726765Z         }
2026-06-15T09:27:05.0726870Z       }
2026-06-15T09:27:05.0726971Z     },
2026-06-15T09:27:05.0727055Z     {
2026-06-15T09:27:05.0727170Z       "id": "REQ-INST-6",
2026-06-15T09:27:05.0727380Z       "title": "Deferred messages not delivered to dormant/suspended instances",
2026-06-15T09:27:05.0727499Z       "requiredStages": [
2026-06-15T09:27:05.0727601Z         "impl",
2026-06-15T09:27:05.0727713Z         "unit",
2026-06-15T09:27:05.0727817Z         "int"
2026-06-15T09:27:05.0727913Z       ],
2026-06-15T09:27:05.0728010Z       "stages": {
2026-06-15T09:27:05.0728108Z         "doc": {
2026-06-15T09:27:05.0728223Z           "complete": true,
2026-06-15T09:27:05.0728404Z           "evidence": [
2026-06-15T09:27:05.0728509Z             {
2026-06-15T09:27:05.0728638Z               "path": "docs/DEFERRED.md",
2026-06-15T09:27:05.0728747Z               "line": 13
2026-06-15T09:27:05.0728848Z             }
2026-06-15T09:27:05.0729029Z           ]
2026-06-15T09:27:05.0729128Z         },
2026-06-15T09:27:05.0729230Z         "impl": {
2026-06-15T09:27:05.0729348Z           "complete": true,
2026-06-15T09:27:05.0729463Z           "evidence": [
2026-06-15T09:27:05.0729559Z             {
2026-06-15T09:27:05.0729701Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T09:27:05.0729802Z               "line": 391
2026-06-15T09:27:05.0729907Z             },
2026-06-15T09:27:05.0730006Z             {
2026-06-15T09:27:05.0730148Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-15T09:27:05.0730252Z               "line": 27
2026-06-15T09:27:05.0730351Z             },
2026-06-15T09:27:05.0730461Z             {
2026-06-15T09:27:05.0730605Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-15T09:27:05.0730708Z               "line": 73
2026-06-15T09:27:05.0730805Z             },
2026-06-15T09:27:05.0730900Z             {
2026-06-15T09:27:05.0731037Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-15T09:27:05.0731138Z               "line": 182
2026-06-15T09:27:05.0731243Z             },
2026-06-15T09:27:05.0731347Z             {
2026-06-15T09:27:05.0731501Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:27:05.0731600Z               "line": 426
2026-06-15T09:27:05.0731710Z             },
2026-06-15T09:27:05.0731811Z             {
2026-06-15T09:27:05.0731949Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-15T09:27:05.0732049Z               "line": 31
2026-06-15T09:27:05.0732154Z             },
2026-06-15T09:27:05.0732249Z             {
2026-06-15T09:27:05.0732384Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T09:27:05.0732492Z               "line": 187
2026-06-15T09:27:05.0732597Z             },
2026-06-15T09:27:05.0732698Z             {
2026-06-15T09:27:05.0732840Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T09:27:05.0732939Z               "line": 83
2026-06-15T09:27:05.0733035Z             },
2026-06-15T09:27:05.0733129Z             {
2026-06-15T09:27:05.0733256Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0733366Z               "line": 1598
2026-06-15T09:27:05.0733462Z             },
2026-06-15T09:27:05.0733561Z             {
2026-06-15T09:27:05.0733686Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T09:27:05.0733796Z               "line": 179
2026-06-15T09:27:05.0733895Z             },
2026-06-15T09:27:05.0733992Z             {
2026-06-15T09:27:05.0734125Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T09:27:05.0734224Z               "line": 215
2026-06-15T09:27:05.0734320Z             }
2026-06-15T09:27:05.0734411Z           ]
2026-06-15T09:27:05.0734510Z         },
2026-06-15T09:27:05.0734611Z         "int": {
2026-06-15T09:27:05.0734716Z           "complete": true,
2026-06-15T09:27:05.0734816Z           "evidence": [
2026-06-15T09:27:05.0734916Z             {
2026-06-15T09:27:05.0735064Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:27:05.0735159Z               "line": 652
2026-06-15T09:27:05.0735356Z             },
2026-06-15T09:27:05.0735453Z             {
2026-06-15T09:27:05.0735592Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:27:05.0735696Z               "line": 1020
2026-06-15T09:27:05.0735794Z             },
2026-06-15T09:27:05.0735905Z             {
2026-06-15T09:27:05.0736034Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T09:27:05.0736133Z               "line": 726
2026-06-15T09:27:05.0736229Z             }
2026-06-15T09:27:05.0736324Z           ]
2026-06-15T09:27:05.0736423Z         },
2026-06-15T09:27:05.0736524Z         "unit": {
2026-06-15T09:27:05.0736639Z           "complete": true,
2026-06-15T09:27:05.0736834Z           "evidence": [
2026-06-15T09:27:05.0736940Z             {
2026-06-15T09:27:05.0737076Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T09:27:05.0737173Z               "line": 661
2026-06-15T09:27:05.0737273Z             },
2026-06-15T09:27:05.0737368Z             {
2026-06-15T09:27:05.0737517Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:27:05.0737621Z               "line": 899
2026-06-15T09:27:05.0737720Z             },
2026-06-15T09:27:05.0737822Z             {
2026-06-15T09:27:05.0737959Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-15T09:27:05.0738059Z               "line": 66
2026-06-15T09:27:05.0738161Z             },
2026-06-15T09:27:05.0738260Z             {
2026-06-15T09:27:05.0738392Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T09:27:05.0738512Z               "line": 282
2026-06-15T09:27:05.0738616Z             },
2026-06-15T09:27:05.0738716Z             {
2026-06-15T09:27:05.0738865Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T09:27:05.0739031Z               "line": 203
2026-06-15T09:27:05.0739123Z             }
2026-06-15T09:27:05.0739217Z           ]
2026-06-15T09:27:05.0739317Z         }
2026-06-15T09:27:05.0739418Z       }
2026-06-15T09:27:05.0739518Z     },
2026-06-15T09:27:05.0739617Z     {
2026-06-15T09:27:05.0739718Z       "id": "REQ-INST-7",
2026-06-15T09:27:05.0739894Z       "title": "Subnet registry + bare-id resolution policy",
2026-06-15T09:27:05.0740004Z       "requiredStages": [
2026-06-15T09:27:05.0740115Z         "impl",
2026-06-15T09:27:05.0740208Z         "unit",
2026-06-15T09:27:05.0740314Z         "int"
2026-06-15T09:27:05.0740416Z       ],
2026-06-15T09:27:05.0740513Z       "stages": {
2026-06-15T09:27:05.0740618Z         "doc": {
2026-06-15T09:27:05.0740733Z           "complete": false,
2026-06-15T09:27:05.0740845Z           "evidence": []
2026-06-15T09:27:05.0740949Z         },
2026-06-15T09:27:05.0741045Z         "impl": {
2026-06-15T09:27:05.0741165Z           "complete": true,
2026-06-15T09:27:05.0741268Z           "evidence": [
2026-06-15T09:27:05.0741360Z             {
2026-06-15T09:27:05.0741502Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T09:27:05.0741611Z               "line": 436
2026-06-15T09:27:05.0741708Z             },
2026-06-15T09:27:05.0741808Z             {
2026-06-15T09:27:05.0741965Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:05.0742070Z               "line": 27
2026-06-15T09:27:05.0742165Z             },
2026-06-15T09:27:05.0742270Z             {
2026-06-15T09:27:05.0742423Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:05.0742537Z               "line": 207
2026-06-15T09:27:05.0742634Z             },
2026-06-15T09:27:05.0742737Z             {
2026-06-15T09:27:05.0742875Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:05.0742977Z               "line": 344
2026-06-15T09:27:05.0743076Z             },
2026-06-15T09:27:05.0743176Z             {
2026-06-15T09:27:05.0743320Z               "path": "crates/spt-net/src/net/ndjson.rs",
2026-06-15T09:27:05.0743429Z               "line": 59
2026-06-15T09:27:05.0743523Z             },
2026-06-15T09:27:05.0743623Z             {
2026-06-15T09:27:05.0743760Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.0743970Z               "line": 41
2026-06-15T09:27:05.0744065Z             },
2026-06-15T09:27:05.0744164Z             {
2026-06-15T09:27:05.0744313Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T09:27:05.0744422Z               "line": 27
2026-06-15T09:27:05.0744517Z             },
2026-06-15T09:27:05.0744614Z             {
2026-06-15T09:27:05.0744761Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T09:27:05.0744856Z               "line": 119
2026-06-15T09:27:05.0744957Z             },
2026-06-15T09:27:05.0745052Z             {
2026-06-15T09:27:05.0745196Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T09:27:05.0745395Z               "line": 134
2026-06-15T09:27:05.0745496Z             },
2026-06-15T09:27:05.0745596Z             {
2026-06-15T09:27:05.0745733Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T09:27:05.0745844Z               "line": 139
2026-06-15T09:27:05.0745948Z             }
2026-06-15T09:27:05.0746047Z           ]
2026-06-15T09:27:05.0746147Z         },
2026-06-15T09:27:05.0746247Z         "int": {
2026-06-15T09:27:05.0746359Z           "complete": true,
2026-06-15T09:27:05.0746460Z           "evidence": [
2026-06-15T09:27:05.0746560Z             {
2026-06-15T09:27:05.0746707Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-15T09:27:05.0746813Z               "line": 102
2026-06-15T09:27:05.0746913Z             },
2026-06-15T09:27:05.0747012Z             {
2026-06-15T09:27:05.0747161Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:27:05.0747261Z               "line": 596
2026-06-15T09:27:05.0747365Z             },
2026-06-15T09:27:05.0747462Z             {
2026-06-15T09:27:05.0747604Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:27:05.0747699Z               "line": 870
2026-06-15T09:27:05.0747805Z             }
2026-06-15T09:27:05.0747905Z           ]
2026-06-15T09:27:05.0748005Z         },
2026-06-15T09:27:05.0748106Z         "unit": {
2026-06-15T09:27:05.0748218Z           "complete": true,
2026-06-15T09:27:05.0748319Z           "evidence": [
2026-06-15T09:27:05.0748421Z             {
2026-06-15T09:27:05.0748567Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:05.0748678Z               "line": 1082
2026-06-15T09:27:05.0748778Z             },
2026-06-15T09:27:05.0748885Z             {
2026-06-15T09:27:05.0749096Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:05.0749210Z               "line": 1414
2026-06-15T09:27:05.0749305Z             },
2026-06-15T09:27:05.0749402Z             {
2026-06-15T09:27:05.0749562Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-15T09:27:05.0749663Z               "line": 84
2026-06-15T09:27:05.0749758Z             },
2026-06-15T09:27:05.0749853Z             {
2026-06-15T09:27:05.0749992Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.0750102Z               "line": 780
2026-06-15T09:27:05.0750206Z             },
2026-06-15T09:27:05.0750307Z             {
2026-06-15T09:27:05.0750449Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.0750564Z               "line": 791
2026-06-15T09:27:05.0750665Z             },
2026-06-15T09:27:05.0750759Z             {
2026-06-15T09:27:05.0750902Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.0751004Z               "line": 806
2026-06-15T09:27:05.0751107Z             },
2026-06-15T09:27:05.0751206Z             {
2026-06-15T09:27:05.0751359Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T09:27:05.0751467Z               "line": 166
2026-06-15T09:27:05.0751576Z             },
2026-06-15T09:27:05.0751672Z             {
2026-06-15T09:27:05.0751810Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T09:27:05.0751925Z               "line": 181
2026-06-15T09:27:05.0752015Z             },
2026-06-15T09:27:05.0752211Z             {
2026-06-15T09:27:05.0752349Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T09:27:05.0752458Z               "line": 214
2026-06-15T09:27:05.0752560Z             }
2026-06-15T09:27:05.0752659Z           ]
2026-06-15T09:27:05.0752758Z         }
2026-06-15T09:27:05.0752855Z       }
2026-06-15T09:27:05.0752954Z     },
2026-06-15T09:27:05.0753054Z     {
2026-06-15T09:27:05.0753165Z       "id": "REQ-INST-8",
2026-06-15T09:27:05.0753345Z       "title": "Remote-control mode distinct from local operation",
2026-06-15T09:27:05.0753460Z       "requiredStages": [
2026-06-15T09:27:05.0753570Z         "impl",
2026-06-15T09:27:05.0753660Z         "unit",
2026-06-15T09:27:05.0753857Z         "int"
2026-06-15T09:27:05.0753960Z       ],
2026-06-15T09:27:05.0754054Z       "stages": {
2026-06-15T09:27:05.0754155Z         "doc": {
2026-06-15T09:27:05.0754272Z           "complete": false,
2026-06-15T09:27:05.0754385Z           "evidence": []
2026-06-15T09:27:05.0754482Z         },
2026-06-15T09:27:05.0754587Z         "impl": {
2026-06-15T09:27:05.0754696Z           "complete": true,
2026-06-15T09:27:05.0754797Z           "evidence": [
2026-06-15T09:27:05.0754892Z             {
2026-06-15T09:27:05.0755029Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-15T09:27:05.0755140Z               "line": 104
2026-06-15T09:27:05.0755240Z             },
2026-06-15T09:27:05.0755344Z             {
2026-06-15T09:27:05.0755479Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-15T09:27:05.0755578Z               "line": 299
2026-06-15T09:27:05.0755683Z             },
2026-06-15T09:27:05.0755780Z             {
2026-06-15T09:27:05.0755921Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-15T09:27:05.0756037Z               "line": 339
2026-06-15T09:27:05.0756142Z             },
2026-06-15T09:27:05.0756241Z             {
2026-06-15T09:27:05.0756385Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T09:27:05.0756485Z               "line": 62
2026-06-15T09:27:05.0756588Z             }
2026-06-15T09:27:05.0756693Z           ]
2026-06-15T09:27:05.0756793Z         },
2026-06-15T09:27:05.0756896Z         "int": {
2026-06-15T09:27:05.0757005Z           "complete": true,
2026-06-15T09:27:05.0757116Z           "evidence": [
2026-06-15T09:27:05.0757206Z             {
2026-06-15T09:27:05.0757364Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T09:27:05.0757473Z               "line": 415
2026-06-15T09:27:05.0757572Z             },
2026-06-15T09:27:05.0757669Z             {
2026-06-15T09:27:05.0757812Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:27:05.0757920Z               "line": 934
2026-06-15T09:27:05.0758026Z             }
2026-06-15T09:27:05.0758121Z           ]
2026-06-15T09:27:05.0758226Z         },
2026-06-15T09:27:05.0758323Z         "unit": {
2026-06-15T09:27:05.0758441Z           "complete": true,
2026-06-15T09:27:05.0758540Z           "evidence": [
2026-06-15T09:27:05.0758642Z             {
2026-06-15T09:27:05.0758803Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T09:27:05.0758904Z               "line": 358
2026-06-15T09:27:05.0759079Z             },
2026-06-15T09:27:05.0759179Z             {
2026-06-15T09:27:05.0759324Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T09:27:05.0759427Z               "line": 513
2026-06-15T09:27:05.0759522Z             },
2026-06-15T09:27:05.0759622Z             {
2026-06-15T09:27:05.0759770Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T09:27:05.0759870Z               "line": 116
2026-06-15T09:27:05.0759971Z             },
2026-06-15T09:27:05.0760076Z             {
2026-06-15T09:27:05.0760219Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T09:27:05.0760337Z               "line": 160
2026-06-15T09:27:05.0760442Z             }
2026-06-15T09:27:05.0760538Z           ]
2026-06-15T09:27:05.0760643Z         }
2026-06-15T09:27:05.0760743Z       }
2026-06-15T09:27:05.0760838Z     },
2026-06-15T09:27:05.0761053Z     {
2026-06-15T09:27:05.0761168Z       "id": "REQ-INST-9",
2026-06-15T09:27:05.0761382Z       "title": "Multi-subnet membership (same-user N subnets; cross-user seam)",
2026-06-15T09:27:05.0761497Z       "requiredStages": [
2026-06-15T09:27:05.0761597Z         "impl",
2026-06-15T09:27:05.0761700Z         "unit"
2026-06-15T09:27:05.0761790Z       ],
2026-06-15T09:27:05.0761891Z       "stages": {
2026-06-15T09:27:05.0761998Z         "doc": {
2026-06-15T09:27:05.0762122Z           "complete": false,
2026-06-15T09:27:05.0762228Z           "evidence": []
2026-06-15T09:27:05.0762332Z         },
2026-06-15T09:27:05.0762437Z         "impl": {
2026-06-15T09:27:05.0762646Z           "complete": true,
2026-06-15T09:27:05.0762746Z           "evidence": [
2026-06-15T09:27:05.0762848Z             {
2026-06-15T09:27:05.0762999Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.0763110Z               "line": 417
2026-06-15T09:27:05.0763209Z             }
2026-06-15T09:27:05.0763314Z           ]
2026-06-15T09:27:05.0763415Z         },
2026-06-15T09:27:05.0763515Z         "int": {
2026-06-15T09:27:05.0763624Z           "complete": false,
2026-06-15T09:27:05.0763735Z           "evidence": []
2026-06-15T09:27:05.0763834Z         },
2026-06-15T09:27:05.0763944Z         "unit": {
2026-06-15T09:27:05.0764054Z           "complete": true,
2026-06-15T09:27:05.0764168Z           "evidence": [
2026-06-15T09:27:05.0764263Z             {
2026-06-15T09:27:05.0764417Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.0764534Z               "line": 1321
2026-06-15T09:27:05.0764629Z             },
2026-06-15T09:27:05.0764729Z             {
2026-06-15T09:27:05.0764889Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.0765004Z               "line": 1330
2026-06-15T09:27:05.0765100Z             },
2026-06-15T09:27:05.0765204Z             {
2026-06-15T09:27:05.0765347Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.0765452Z               "line": 1346
2026-06-15T09:27:05.0765556Z             },
2026-06-15T09:27:05.0765643Z             {
2026-06-15T09:27:05.0765786Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.0765905Z               "line": 1358
2026-06-15T09:27:05.0766006Z             },
2026-06-15T09:27:05.0766110Z             {
2026-06-15T09:27:05.0766248Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.0766354Z               "line": 1378
2026-06-15T09:27:05.0766453Z             }
2026-06-15T09:27:05.0766549Z           ]
2026-06-15T09:27:05.0766645Z         }
2026-06-15T09:27:05.0766749Z       }
2026-06-15T09:27:05.0766849Z     },
2026-06-15T09:27:05.0766945Z     {
2026-06-15T09:27:05.0767064Z       "id": "REQ-INSTALL-1",
2026-06-15T09:27:05.0767287Z       "title": "Two install paths; signed one-line script; OS-service registration",
2026-06-15T09:27:05.0767399Z       "requiredStages": [
2026-06-15T09:27:05.0767508Z         "doc",
2026-06-15T09:27:05.0767614Z         "impl",
2026-06-15T09:27:05.0767714Z         "int"
2026-06-15T09:27:05.0767813Z       ],
2026-06-15T09:27:05.0767914Z       "stages": {
2026-06-15T09:27:05.0768014Z         "doc": {
2026-06-15T09:27:05.0768133Z           "complete": true,
2026-06-15T09:27:05.0768249Z           "evidence": [
2026-06-15T09:27:05.0768357Z             {
2026-06-15T09:27:05.0768480Z               "path": "CONTEXT.md",
2026-06-15T09:27:05.0768577Z               "line": 692
2026-06-15T09:27:05.0768682Z             }
2026-06-15T09:27:05.0768781Z           ]
2026-06-15T09:27:05.0768888Z         },
2026-06-15T09:27:05.0769063Z         "impl": {
2026-06-15T09:27:05.0769173Z           "complete": true,
2026-06-15T09:27:05.0769292Z           "evidence": [
2026-06-15T09:27:05.0769392Z             {
2026-06-15T09:27:05.0769522Z               "path": "installer/install.ps1",
2026-06-15T09:27:05.0769625Z               "line": 57
2026-06-15T09:27:05.0769726Z             },
2026-06-15T09:27:05.0769827Z             {
2026-06-15T09:27:05.0770053Z               "path": "installer/install.sh",
2026-06-15T09:27:05.0770159Z               "line": 52
2026-06-15T09:27:05.0770250Z             }
2026-06-15T09:27:05.0770349Z           ]
2026-06-15T09:27:05.0770449Z         },
2026-06-15T09:27:05.0770546Z         "int": {
2026-06-15T09:27:05.0770659Z           "complete": true,
2026-06-15T09:27:05.0770759Z           "evidence": [
2026-06-15T09:27:05.0770860Z             {
2026-06-15T09:27:05.0771002Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-15T09:27:05.0771113Z               "line": 21
2026-06-15T09:27:05.0771213Z             }
2026-06-15T09:27:05.0771317Z           ]
2026-06-15T09:27:05.0771514Z         },
2026-06-15T09:27:05.0771618Z         "unit": {
2026-06-15T09:27:05.0771723Z           "complete": false,
2026-06-15T09:27:05.0771819Z           "evidence": []
2026-06-15T09:27:05.0771917Z         }
2026-06-15T09:27:05.0772014Z       }
2026-06-15T09:27:05.0772115Z     },
2026-06-15T09:27:05.0772213Z     {
2026-06-15T09:27:05.0772336Z       "id": "REQ-INSTALL-2",
2026-06-15T09:27:05.0772493Z       "title": "Marketplace-repackaging-friendly install",
2026-06-15T09:27:05.0772616Z       "requiredStages": [
2026-06-15T09:27:05.0772716Z         "doc"
2026-06-15T09:27:05.0772817Z       ],
2026-06-15T09:27:05.0772920Z       "stages": {
2026-06-15T09:27:05.0773021Z         "doc": {
2026-06-15T09:27:05.0773140Z           "complete": true,
2026-06-15T09:27:05.0773249Z           "evidence": [
2026-06-15T09:27:05.0773346Z             {
2026-06-15T09:27:05.0773464Z               "path": "CONTEXT.md",
2026-06-15T09:27:05.0773564Z               "line": 693
2026-06-15T09:27:05.0773656Z             }
2026-06-15T09:27:05.0773760Z           ]
2026-06-15T09:27:05.0773865Z         },
2026-06-15T09:27:05.0773970Z         "impl": {
2026-06-15T09:27:05.0774085Z           "complete": false,
2026-06-15T09:27:05.0774198Z           "evidence": []
2026-06-15T09:27:05.0774295Z         },
2026-06-15T09:27:05.0774395Z         "int": {
2026-06-15T09:27:05.0774508Z           "complete": false,
2026-06-15T09:27:05.0774624Z           "evidence": []
2026-06-15T09:27:05.0774728Z         },
2026-06-15T09:27:05.0774823Z         "unit": {
2026-06-15T09:27:05.0774929Z           "complete": false,
2026-06-15T09:27:05.0775039Z           "evidence": []
2026-06-15T09:27:05.0775137Z         }
2026-06-15T09:27:05.0775237Z       }
2026-06-15T09:27:05.0775337Z     },
2026-06-15T09:27:05.0775430Z     {
2026-06-15T09:27:05.0775544Z       "id": "REQ-INSTALL-3",
2026-06-15T09:27:05.0775722Z       "title": "Idempotent + interactive-optional first run",
2026-06-15T09:27:05.0775840Z       "requiredStages": [
2026-06-15T09:27:05.0775951Z         "impl",
2026-06-15T09:27:05.0776088Z         "int"
2026-06-15T09:27:05.0776183Z       ],
2026-06-15T09:27:05.0776285Z       "stages": {
2026-06-15T09:27:05.0776389Z         "doc": {
2026-06-15T09:27:05.0776508Z           "complete": false,
2026-06-15T09:27:05.0776637Z           "evidence": []
2026-06-15T09:27:05.0776732Z         },
2026-06-15T09:27:05.0776837Z         "impl": {
2026-06-15T09:27:05.0776947Z           "complete": true,
2026-06-15T09:27:05.0777056Z           "evidence": [
2026-06-15T09:27:05.0777152Z             {
2026-06-15T09:27:05.0777290Z               "path": "installer/install.ps1",
2026-06-15T09:27:05.0777395Z               "line": 100
2026-06-15T09:27:05.0777491Z             },
2026-06-15T09:27:05.0777596Z             {
2026-06-15T09:27:05.0777732Z               "path": "installer/install.ps1",
2026-06-15T09:27:05.0777832Z               "line": 111
2026-06-15T09:27:05.0777931Z             },
2026-06-15T09:27:05.0778035Z             {
2026-06-15T09:27:05.0778159Z               "path": "installer/install.sh",
2026-06-15T09:27:05.0778270Z               "line": 79
2026-06-15T09:27:05.0778359Z             }
2026-06-15T09:27:05.0778459Z           ]
2026-06-15T09:27:05.0778560Z         },
2026-06-15T09:27:05.0778659Z         "int": {
2026-06-15T09:27:05.0778774Z           "complete": true,
2026-06-15T09:27:05.0779036Z           "evidence": [
2026-06-15T09:27:05.0779133Z             {
2026-06-15T09:27:05.0779275Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-15T09:27:05.0779389Z               "line": 167
2026-06-15T09:27:05.0779495Z             }
2026-06-15T09:27:05.0779594Z           ]
2026-06-15T09:27:05.0779694Z         },
2026-06-15T09:27:05.0779791Z         "unit": {
2026-06-15T09:27:05.0779904Z           "complete": false,
2026-06-15T09:27:05.0780004Z           "evidence": []
2026-06-15T09:27:05.0780106Z         }
2026-06-15T09:27:05.0780199Z       }
2026-06-15T09:27:05.0780296Z     },
2026-06-15T09:27:05.0780397Z     {
2026-06-15T09:27:05.0780505Z       "id": "REQ-INSTALL-4",
2026-06-15T09:27:05.0781290Z       "title": "Adapter registration lifecycle: spt adapter add (--github, manifest-first, install-is-first-update) + soft-deregister remove + optional manifest uninstall template; node-local registered-adapter set self-update ripples over",
2026-06-15T09:27:05.0781411Z       "requiredStages": [
2026-06-15T09:27:05.0781515Z         "impl",
2026-06-15T09:27:05.0781615Z         "unit"
2026-06-15T09:27:05.0781711Z       ],
2026-06-15T09:27:05.0781810Z       "stages": {
2026-06-15T09:27:05.0781910Z         "doc": {
2026-06-15T09:27:05.0782026Z           "complete": false,
2026-06-15T09:27:05.0782125Z           "evidence": []
2026-06-15T09:27:05.0782220Z         },
2026-06-15T09:27:05.0782327Z         "impl": {
2026-06-15T09:27:05.0782440Z           "complete": true,
2026-06-15T09:27:05.0782549Z           "evidence": [
2026-06-15T09:27:05.0782651Z             {
2026-06-15T09:27:05.0782825Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T09:27:05.0782944Z               "line": 154
2026-06-15T09:27:05.0783053Z             },
2026-06-15T09:27:05.0783152Z             {
2026-06-15T09:27:05.0783290Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:27:05.0783401Z               "line": 29
2026-06-15T09:27:05.0783499Z             },
2026-06-15T09:27:05.0783591Z             {
2026-06-15T09:27:05.0783739Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:27:05.0783833Z               "line": 275
2026-06-15T09:27:05.0783939Z             },
2026-06-15T09:27:05.0784039Z             {
2026-06-15T09:27:05.0784187Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:27:05.0784283Z               "line": 339
2026-06-15T09:27:05.0784392Z             },
2026-06-15T09:27:05.0784492Z             {
2026-06-15T09:27:05.0784635Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:27:05.0784745Z               "line": 369
2026-06-15T09:27:05.0784835Z             },
2026-06-15T09:27:05.0784941Z             {
2026-06-15T09:27:05.0785087Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:27:05.0785199Z               "line": 401
2026-06-15T09:27:05.0785293Z             },
2026-06-15T09:27:05.0785393Z             {
2026-06-15T09:27:05.0785528Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0785641Z               "line": 4841
2026-06-15T09:27:05.0785745Z             }
2026-06-15T09:27:05.0785845Z           ]
2026-06-15T09:27:05.0785944Z         },
2026-06-15T09:27:05.0786042Z         "int": {
2026-06-15T09:27:05.0786153Z           "complete": false,
2026-06-15T09:27:05.0786273Z           "evidence": []
2026-06-15T09:27:05.0786371Z         },
2026-06-15T09:27:05.0786472Z         "unit": {
2026-06-15T09:27:05.0786582Z           "complete": true,
2026-06-15T09:27:05.0786696Z           "evidence": [
2026-06-15T09:27:05.0786797Z             {
2026-06-15T09:27:05.0786959Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T09:27:05.0787078Z               "line": 335
2026-06-15T09:27:05.0787179Z             },
2026-06-15T09:27:05.0787283Z             {
2026-06-15T09:27:05.0787427Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:27:05.0787545Z               "line": 763
2026-06-15T09:27:05.0787649Z             },
2026-06-15T09:27:05.0790445Z             {
2026-06-15T09:27:05.0790788Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:27:05.0790904Z               "line": 804
2026-06-15T09:27:05.0791000Z             },
2026-06-15T09:27:05.0791098Z             {
2026-06-15T09:27:05.0791259Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:27:05.0791371Z               "line": 824
2026-06-15T09:27:05.0791474Z             },
2026-06-15T09:27:05.0791570Z             {
2026-06-15T09:27:05.0791709Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0791822Z               "line": 6797
2026-06-15T09:27:05.0791924Z             }
2026-06-15T09:27:05.0792023Z           ]
2026-06-15T09:27:05.0792248Z         }
2026-06-15T09:27:05.0792347Z       }
2026-06-15T09:27:05.0792447Z     },
2026-06-15T09:27:05.0792543Z     {
2026-06-15T09:27:05.0792662Z       "id": "REQ-INSTALL-5",
2026-06-15T09:27:05.0793202Z       "title": "Non-interactive install path: the canonical one-liner doubles as every adapter's pack-in on-demand install (no second mechanism); sha256-verified fetch; user-PATH registration",
2026-06-15T09:27:05.0793385Z       "requiredStages": [
2026-06-15T09:27:05.0793485Z         "impl",
2026-06-15T09:27:05.0793585Z         "int"
2026-06-15T09:27:05.0793689Z       ],
2026-06-15T09:27:05.0793793Z       "stages": {
2026-06-15T09:27:05.0793889Z         "doc": {
2026-06-15T09:27:05.0794003Z           "complete": false,
2026-06-15T09:27:05.0794113Z           "evidence": []
2026-06-15T09:27:05.0794209Z         },
2026-06-15T09:27:05.0794308Z         "impl": {
2026-06-15T09:27:05.0794417Z           "complete": true,
2026-06-15T09:27:05.0794523Z           "evidence": [
2026-06-15T09:27:05.0794632Z             {
2026-06-15T09:27:05.0794771Z               "path": "installer/install.ps1",
2026-06-15T09:27:05.0794866Z               "line": 5
2026-06-15T09:27:05.0794966Z             },
2026-06-15T09:27:05.0795066Z             {
2026-06-15T09:27:05.0795186Z               "path": "installer/install.sh",
2026-06-15T09:27:05.0795290Z               "line": 6
2026-06-15T09:27:05.0795391Z             }
2026-06-15T09:27:05.0795492Z           ]
2026-06-15T09:27:05.0795595Z         },
2026-06-15T09:27:05.0795696Z         "int": {
2026-06-15T09:27:05.0795801Z           "complete": true,
2026-06-15T09:27:05.0795914Z           "evidence": [
2026-06-15T09:27:05.0796011Z             {
2026-06-15T09:27:05.0796168Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-15T09:27:05.0796271Z               "line": 22
2026-06-15T09:27:05.0796372Z             }
2026-06-15T09:27:05.0796462Z           ]
2026-06-15T09:27:05.0796560Z         },
2026-06-15T09:27:05.0796669Z         "unit": {
2026-06-15T09:27:05.0796790Z           "complete": false,
2026-06-15T09:27:05.0796908Z           "evidence": []
2026-06-15T09:27:05.0797008Z         }
2026-06-15T09:27:05.0797162Z       }
2026-06-15T09:27:05.0797265Z     },
2026-06-15T09:27:05.0797367Z     {
2026-06-15T09:27:05.0797486Z       "id": "REQ-INSTALL-6",
2026-06-15T09:27:05.0798881Z       "title": "Linux elevation install leg: install.sh symlinks the binary into a sudo-reachable path (/usr/local/bin; graceful print-the-one-liner when unelevated) so sudo spt resolves; first sudo spt detects elevation and prompts ONCE for the default user account — thereafter any elevated daemon launch runs daemon + state under that account, never root (KH 5.7 interplay verified) (M8 decision 8)",
2026-06-15T09:27:05.0799103Z       "requiredStages": [
2026-06-15T09:27:05.0799198Z         "impl",
2026-06-15T09:27:05.0799294Z         "unit"
2026-06-15T09:27:05.0799395Z       ],
2026-06-15T09:27:05.0799503Z       "stages": {
2026-06-15T09:27:05.0799604Z         "doc": {
2026-06-15T09:27:05.0799719Z           "complete": false,
2026-06-15T09:27:05.0799823Z           "evidence": []
2026-06-15T09:27:05.0799919Z         },
2026-06-15T09:27:05.0800019Z         "impl": {
2026-06-15T09:27:05.0800137Z           "complete": true,
2026-06-15T09:27:05.0800234Z           "evidence": [
2026-06-15T09:27:05.0800328Z             {
2026-06-15T09:27:05.0800597Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:27:05.0800691Z               "line": 59
2026-06-15T09:27:05.0800791Z             },
2026-06-15T09:27:05.0800892Z             {
2026-06-15T09:27:05.0801044Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:27:05.0801149Z               "line": 559
2026-06-15T09:27:05.0801250Z             },
2026-06-15T09:27:05.0801353Z             {
2026-06-15T09:27:05.0801503Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T09:27:05.0801616Z               "line": 191
2026-06-15T09:27:05.0801710Z             },
2026-06-15T09:27:05.0801806Z             {
2026-06-15T09:27:05.0802044Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T09:27:05.0802159Z               "line": 276
2026-06-15T09:27:05.0802264Z             },
2026-06-15T09:27:05.0802363Z             {
2026-06-15T09:27:05.0802489Z               "path": "crates/spt/src/main.rs",
2026-06-15T09:27:05.0802593Z               "line": 42
2026-06-15T09:27:05.0802697Z             },
2026-06-15T09:27:05.0802798Z             {
2026-06-15T09:27:05.0802936Z               "path": "installer/install.sh",
2026-06-15T09:27:05.0803040Z               "line": 104
2026-06-15T09:27:05.0803142Z             }
2026-06-15T09:27:05.0803241Z           ]
2026-06-15T09:27:05.0803346Z         },
2026-06-15T09:27:05.0803447Z         "int": {
2026-06-15T09:27:05.0803560Z           "complete": false,
2026-06-15T09:27:05.0803670Z           "evidence": []
2026-06-15T09:27:05.0803777Z         },
2026-06-15T09:27:05.0803870Z         "unit": {
2026-06-15T09:27:05.0803974Z           "complete": true,
2026-06-15T09:27:05.0804084Z           "evidence": [
2026-06-15T09:27:05.0804183Z             {
2026-06-15T09:27:05.0804329Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T09:27:05.0804430Z               "line": 866
2026-06-15T09:27:05.0804534Z             }
2026-06-15T09:27:05.0804629Z           ]
2026-06-15T09:27:05.0804735Z         }
2026-06-15T09:27:05.0804835Z       }
2026-06-15T09:27:05.0804935Z     },
2026-06-15T09:27:05.0805031Z     {
2026-06-15T09:27:05.0805136Z       "id": "REQ-INSTALL-7",
2026-06-15T09:27:05.0806329Z       "title": "Windows inbound reachability: the elevated install leg registers the inbound-UDP firewall rule (New-NetFirewallRule); the daemon self-detects blocked inbound and renders it as the no-connection state in subnet status + the coming-online banner (covers user-scope installs that skip the elevated leg — never a silent NO_SEED_HOLDER dead-end) (M8 root cause 3)",
2026-06-15T09:27:05.0806451Z       "requiredStages": [
2026-06-15T09:27:05.0806561Z         "impl"
2026-06-15T09:27:05.0806662Z       ],
2026-06-15T09:27:05.0806766Z       "stages": {
2026-06-15T09:27:05.0806860Z         "doc": {
2026-06-15T09:27:05.0806966Z           "complete": false,
2026-06-15T09:27:05.0807073Z           "evidence": []
2026-06-15T09:27:05.0807172Z         },
2026-06-15T09:27:05.0807268Z         "impl": {
2026-06-15T09:27:05.0807388Z           "complete": true,
2026-06-15T09:27:05.0807496Z           "evidence": [
2026-06-15T09:27:05.0807603Z             {
2026-06-15T09:27:05.0807731Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0807844Z               "line": 3480
2026-06-15T09:27:05.0807941Z             },
2026-06-15T09:27:05.0808041Z             {
2026-06-15T09:27:05.0808179Z               "path": "installer/install.ps1",
2026-06-15T09:27:05.0808280Z               "line": 157
2026-06-15T09:27:05.0808384Z             }
2026-06-15T09:27:05.0808484Z           ]
2026-06-15T09:27:05.0808580Z         },
2026-06-15T09:27:05.0808684Z         "int": {
2026-06-15T09:27:05.0808803Z           "complete": false,
2026-06-15T09:27:05.0808914Z           "evidence": []
2026-06-15T09:27:05.0809099Z         },
2026-06-15T09:27:05.0809201Z         "unit": {
2026-06-15T09:27:05.0809300Z           "complete": false,
2026-06-15T09:27:05.0809403Z           "evidence": []
2026-06-15T09:27:05.0809494Z         }
2026-06-15T09:27:05.0809692Z       }
2026-06-15T09:27:05.0809791Z     },
2026-06-15T09:27:05.0809893Z     {
2026-06-15T09:27:05.0810007Z       "id": "REQ-INSTALL-8",
2026-06-15T09:27:05.0811162Z       "title": "OS-service registration (REQ-INSTALL-1's deferred third leg): Linux systemd USER service + loginctl enable-linger (linger rides the elevated install leg; daemon starts at boot pre-login, user universe per KH 5.7, systemctl --user managed); Windows scheduled task at-logon (interactive session, no stored credentials); a node is reachable after reboot without any manual spt invocation (M8 decision 17)",
2026-06-15T09:27:05.0811280Z       "requiredStages": [
2026-06-15T09:27:05.0811380Z         "impl"
2026-06-15T09:27:05.0811589Z       ],
2026-06-15T09:27:05.0811695Z       "stages": {
2026-06-15T09:27:05.0811786Z         "doc": {
2026-06-15T09:27:05.0811933Z           "complete": false,
2026-06-15T09:27:05.0812034Z           "evidence": []
2026-06-15T09:27:05.0812135Z         },
2026-06-15T09:27:05.0812237Z         "impl": {
2026-06-15T09:27:05.0812361Z           "complete": true,
2026-06-15T09:27:05.0812476Z           "evidence": [
2026-06-15T09:27:05.0812575Z             {
2026-06-15T09:27:05.0812709Z               "path": "installer/install.ps1",
2026-06-15T09:27:05.0812814Z               "line": 184
2026-06-15T09:27:05.0812909Z             },
2026-06-15T09:27:05.0813010Z             {
2026-06-15T09:27:05.0813138Z               "path": "installer/install.sh",
2026-06-15T09:27:05.0813243Z               "line": 121
2026-06-15T09:27:05.0813334Z             }
2026-06-15T09:27:05.0813434Z           ]
2026-06-15T09:27:05.0813529Z         },
2026-06-15T09:27:05.0813624Z         "int": {
2026-06-15T09:27:05.0813745Z           "complete": false,
2026-06-15T09:27:05.0813844Z           "evidence": []
2026-06-15T09:27:05.0813944Z         },
2026-06-15T09:27:05.0814041Z         "unit": {
2026-06-15T09:27:05.0814153Z           "complete": false,
2026-06-15T09:27:05.0814249Z           "evidence": []
2026-06-15T09:27:05.0814351Z         }
2026-06-15T09:27:05.0814454Z       }
2026-06-15T09:27:05.0814553Z     },
2026-06-15T09:27:05.0814654Z     {
2026-06-15T09:27:05.0814766Z       "id": "REQ-KICK-1",
2026-06-15T09:27:05.0817406Z       "title": "Explicit, loud controller displacement: `spt rc kick <target>` / `--take` (Take intent) kicks the incumbent controller and becomes controller; the displaced controller receives a LOUD `Displaced{by}` notice and is FULLY DETACHED (not demoted to a viewer). A default attach to a controlled endpoint is NEVER a silent displace (it is the Control busy-refusal). An old (N-1) rc omits intent → Control, so it can drive a free endpoint but CANNOT `--take` — it can never silently steal, and gets a clean busy-refusal instead. Taking control rides the same access_check(endpoint, origin, Unsolicited) as a normal control attach (if you may drive, you may take — no elevated kick policy). The picker surfaces 'Kick <node> and attach' (Take) only on a controlled (blue ■) endpoint, via the existing attach dispatch (single-bringup-path: intent is a parameter).",
2026-06-15T09:27:05.0817535Z       "requiredStages": [
2026-06-15T09:27:05.0817643Z         "doc",
2026-06-15T09:27:05.0817742Z         "impl",
2026-06-15T09:27:05.0817833Z         "unit",
2026-06-15T09:27:05.0817925Z         "int"
2026-06-15T09:27:05.0818019Z       ],
2026-06-15T09:27:05.0818119Z       "stages": {
2026-06-15T09:27:05.0818215Z         "doc": {
2026-06-15T09:27:05.0818338Z           "complete": true,
2026-06-15T09:27:05.0818443Z           "evidence": [
2026-06-15T09:27:05.0818544Z             {
2026-06-15T09:27:05.0818662Z               "path": "CONTEXT.md",
2026-06-15T09:27:05.0818763Z               "line": 320
2026-06-15T09:27:05.0818868Z             }
2026-06-15T09:27:05.0819044Z           ]
2026-06-15T09:27:05.0819136Z         },
2026-06-15T09:27:05.0819254Z         "impl": {
2026-06-15T09:27:05.0819359Z           "complete": true,
2026-06-15T09:27:05.0819479Z           "evidence": [
2026-06-15T09:27:05.0819578Z             {
2026-06-15T09:27:05.0819822Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T09:27:05.0819926Z               "line": 41
2026-06-15T09:27:05.0820025Z             },
2026-06-15T09:27:05.0820120Z             {
2026-06-15T09:27:05.0820248Z               "path": "crates/spt/src/rc.rs",
2026-06-15T09:27:05.0820376Z               "line": 181
2026-06-15T09:27:05.0820477Z             }
2026-06-15T09:27:05.0820576Z           ]
2026-06-15T09:27:05.0820676Z         },
2026-06-15T09:27:05.0820777Z         "int": {
2026-06-15T09:27:05.0820891Z           "complete": true,
2026-06-15T09:27:05.0821005Z           "evidence": [
2026-06-15T09:27:05.0821106Z             {
2026-06-15T09:27:05.0821392Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T09:27:05.0821511Z               "line": 789
2026-06-15T09:27:05.0821606Z             }
2026-06-15T09:27:05.0821707Z           ]
2026-06-15T09:27:05.0821806Z         },
2026-06-15T09:27:05.0821906Z         "unit": {
2026-06-15T09:27:05.0822017Z           "complete": true,
2026-06-15T09:27:05.0822126Z           "evidence": [
2026-06-15T09:27:05.0822235Z             {
2026-06-15T09:27:05.0822389Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T09:27:05.0822498Z               "line": 205
2026-06-15T09:27:05.0822599Z             }
2026-06-15T09:27:05.0822685Z           ]
2026-06-15T09:27:05.0822779Z         }
2026-06-15T09:27:05.0822873Z       }
2026-06-15T09:27:05.0822978Z     },
2026-06-15T09:27:05.0823080Z     {
2026-06-15T09:27:05.0823188Z       "id": "REQ-MANIFEST-1",
2026-06-15T09:27:05.0823418Z       "title": "Per-adapter manifest with adapter_name and min_spt_core_version",
2026-06-15T09:27:05.0823526Z       "requiredStages": [
2026-06-15T09:27:05.0823637Z         "doc",
2026-06-15T09:27:05.0823738Z         "impl",
2026-06-15T09:27:05.0823836Z         "unit"
2026-06-15T09:27:05.0823933Z       ],
2026-06-15T09:27:05.0824046Z       "stages": {
2026-06-15T09:27:05.0824146Z         "doc": {
2026-06-15T09:27:05.0824272Z           "complete": true,
2026-06-15T09:27:05.0824390Z           "evidence": [
2026-06-15T09:27:05.0824490Z             {
2026-06-15T09:27:05.0824610Z               "path": "docs/MANIFEST.md",
2026-06-15T09:27:05.0824713Z               "line": 19
2026-06-15T09:27:05.0824815Z             }
2026-06-15T09:27:05.0824916Z           ]
2026-06-15T09:27:05.0825004Z         },
2026-06-15T09:27:05.0825113Z         "impl": {
2026-06-15T09:27:05.0825223Z           "complete": true,
2026-06-15T09:27:05.0825326Z           "evidence": [
2026-06-15T09:27:05.0825426Z             {
2026-06-15T09:27:05.0825579Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:27:05.0825683Z               "line": 18
2026-06-15T09:27:05.0825788Z             }
2026-06-15T09:27:05.0825889Z           ]
2026-06-15T09:27:05.0825975Z         },
2026-06-15T09:27:05.0826079Z         "int": {
2026-06-15T09:27:05.0826209Z           "complete": false,
2026-06-15T09:27:05.0826318Z           "evidence": []
2026-06-15T09:27:05.0826422Z         },
2026-06-15T09:27:05.0826533Z         "unit": {
2026-06-15T09:27:05.0826637Z           "complete": true,
2026-06-15T09:27:05.0826746Z           "evidence": [
2026-06-15T09:27:05.0826838Z             {
2026-06-15T09:27:05.0826990Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:27:05.0827105Z               "line": 837
2026-06-15T09:27:05.0827209Z             },
2026-06-15T09:27:05.0827309Z             {
2026-06-15T09:27:05.0827459Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:27:05.0827561Z               "line": 915
2026-06-15T09:27:05.0827667Z             },
2026-06-15T09:27:05.0827764Z             {
2026-06-15T09:27:05.0827910Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:27:05.0828023Z               "line": 927
2026-06-15T09:27:05.0828129Z             },
2026-06-15T09:27:05.0828226Z             {
2026-06-15T09:27:05.0828365Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:27:05.0828470Z               "line": 938
2026-06-15T09:27:05.0828660Z             },
2026-06-15T09:27:05.0828752Z             {
2026-06-15T09:27:05.0828893Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:27:05.0829076Z               "line": 955
2026-06-15T09:27:05.0829180Z             },
2026-06-15T09:27:05.0829280Z             {
2026-06-15T09:27:05.0829424Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:27:05.0829533Z               "line": 969
2026-06-15T09:27:05.0829633Z             },
2026-06-15T09:27:05.0829729Z             {
2026-06-15T09:27:05.0829866Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:27:05.0829977Z               "line": 1034
2026-06-15T09:27:05.0830210Z             },
2026-06-15T09:27:05.0830311Z             {
2026-06-15T09:27:05.0830457Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:27:05.0830556Z               "line": 1049
2026-06-15T09:27:05.0830662Z             },
2026-06-15T09:27:05.0830756Z             {
2026-06-15T09:27:05.0830902Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:27:05.0831008Z               "line": 1160
2026-06-15T09:27:05.0831113Z             },
2026-06-15T09:27:05.0831212Z             {
2026-06-15T09:27:05.0831352Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:27:05.0831465Z               "line": 1171
2026-06-15T09:27:05.0831565Z             }
2026-06-15T09:27:05.0831666Z           ]
2026-06-15T09:27:05.0831766Z         }
2026-06-15T09:27:05.0831861Z       }
2026-06-15T09:27:05.0831957Z     },
2026-06-15T09:27:05.0832056Z     {
2026-06-15T09:27:05.0832171Z       "id": "REQ-MANIFEST-2",
2026-06-15T09:27:05.0832705Z       "title": "Adapter profiles — sparse leaf-replace overlays (shipped + local), composite <adapter>:<profile> addressing, shadow-refusal, tighten-only consent floors",
2026-06-15T09:27:05.0832839Z       "requiredStages": [
2026-06-15T09:27:05.0832940Z         "doc",
2026-06-15T09:27:05.0833043Z         "impl",
2026-06-15T09:27:05.0833140Z         "unit"
2026-06-15T09:27:05.0833240Z       ],
2026-06-15T09:27:05.0833343Z       "stages": {
2026-06-15T09:27:05.0833433Z         "doc": {
2026-06-15T09:27:05.0833553Z           "complete": true,
2026-06-15T09:27:05.0833668Z           "evidence": [
2026-06-15T09:27:05.0833767Z             {
2026-06-15T09:27:05.0833888Z               "path": "CONTEXT.md",
2026-06-15T09:27:05.0833997Z               "line": 75
2026-06-15T09:27:05.0834111Z             }
2026-06-15T09:27:05.0834197Z           ]
2026-06-15T09:27:05.0834288Z         },
2026-06-15T09:27:05.0834396Z         "impl": {
2026-06-15T09:27:05.0834512Z           "complete": true,
2026-06-15T09:27:05.0834616Z           "evidence": [
2026-06-15T09:27:05.0834721Z             {
2026-06-15T09:27:05.0834875Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:27:05.0834979Z               "line": 62
2026-06-15T09:27:05.0835079Z             },
2026-06-15T09:27:05.0835180Z             {
2026-06-15T09:27:05.0835322Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T09:27:05.0835433Z               "line": 15
2026-06-15T09:27:05.0835533Z             },
2026-06-15T09:27:05.0835631Z             {
2026-06-15T09:27:05.0835764Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T09:27:05.0835873Z               "line": 65
2026-06-15T09:27:05.0835977Z             },
2026-06-15T09:27:05.0836077Z             {
2026-06-15T09:27:05.0836211Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T09:27:05.0836305Z               "line": 83
2026-06-15T09:27:05.0836406Z             },
2026-06-15T09:27:05.0836501Z             {
2026-06-15T09:27:05.0836649Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T09:27:05.0836764Z               "line": 183
2026-06-15T09:27:05.0836859Z             },
2026-06-15T09:27:05.0836958Z             {
2026-06-15T09:27:05.0837103Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:27:05.0837207Z               "line": 482
2026-06-15T09:27:05.0837418Z             },
2026-06-15T09:27:05.0837517Z             {
2026-06-15T09:27:05.0837670Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:27:05.0837774Z               "line": 508
2026-06-15T09:27:05.0837869Z             },
2026-06-15T09:27:05.0837971Z             {
2026-06-15T09:27:05.0838122Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:27:05.0838237Z               "line": 626
2026-06-15T09:27:05.0838338Z             },
2026-06-15T09:27:05.0838437Z             {
2026-06-15T09:27:05.0838578Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:27:05.0838679Z               "line": 651
2026-06-15T09:27:05.0838848Z             },
2026-06-15T09:27:05.0839025Z             {
2026-06-15T09:27:05.0839177Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:27:05.0839283Z               "line": 674
2026-06-15T09:27:05.0839393Z             },
2026-06-15T09:27:05.0839492Z             {
2026-06-15T09:27:05.0839636Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:27:05.0839736Z               "line": 689
2026-06-15T09:27:05.0839840Z             },
2026-06-15T09:27:05.0839941Z             {
2026-06-15T09:27:05.0840060Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0840174Z               "line": 4991
2026-06-15T09:27:05.0840271Z             },
2026-06-15T09:27:05.0840374Z             {
2026-06-15T09:27:05.0840493Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0840609Z               "line": 5005
2026-06-15T09:27:05.0840708Z             },
2026-06-15T09:27:05.0840804Z             {
2026-06-15T09:27:05.0840933Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0841051Z               "line": 5039
2026-06-15T09:27:05.0841150Z             }
2026-06-15T09:27:05.0841251Z           ]
2026-06-15T09:27:05.0841348Z         },
2026-06-15T09:27:05.0841453Z         "int": {
2026-06-15T09:27:05.0841563Z           "complete": false,
2026-06-15T09:27:05.0841677Z           "evidence": []
2026-06-15T09:27:05.0841772Z         },
2026-06-15T09:27:05.0841888Z         "unit": {
2026-06-15T09:27:05.0842002Z           "complete": true,
2026-06-15T09:27:05.0842101Z           "evidence": [
2026-06-15T09:27:05.0842198Z             {
2026-06-15T09:27:05.0842345Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T09:27:05.0842455Z               "line": 920
2026-06-15T09:27:05.0842560Z             },
2026-06-15T09:27:05.0842669Z             {
2026-06-15T09:27:05.0842818Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T09:27:05.0842932Z               "line": 211
2026-06-15T09:27:05.0843036Z             },
2026-06-15T09:27:05.0843147Z             {
2026-06-15T09:27:05.0843294Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T09:27:05.0843404Z               "line": 272
2026-06-15T09:27:05.0843500Z             },
2026-06-15T09:27:05.0843604Z             {
2026-06-15T09:27:05.0843753Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T09:27:05.0843871Z               "line": 313
2026-06-15T09:27:05.0843970Z             },
2026-06-15T09:27:05.0844075Z             {
2026-06-15T09:27:05.0844209Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T09:27:05.0844322Z               "line": 325
2026-06-15T09:27:05.0844423Z             },
2026-06-15T09:27:05.0844529Z             {
2026-06-15T09:27:05.0844671Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T09:27:05.0844772Z               "line": 336
2026-06-15T09:27:05.0844876Z             },
2026-06-15T09:27:05.0844976Z             {
2026-06-15T09:27:05.0845134Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T09:27:05.0845248Z               "line": 345
2026-06-15T09:27:05.0845344Z             },
2026-06-15T09:27:05.0845449Z             {
2026-06-15T09:27:05.0845586Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T09:27:05.0845692Z               "line": 361
2026-06-15T09:27:05.0845887Z             },
2026-06-15T09:27:05.0845993Z             {
2026-06-15T09:27:05.0846139Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T09:27:05.0846244Z               "line": 444
2026-06-15T09:27:05.0846339Z             },
2026-06-15T09:27:05.0846438Z             {
2026-06-15T09:27:05.0846584Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:27:05.0846695Z               "line": 877
2026-06-15T09:27:05.0846790Z             },
2026-06-15T09:27:05.0846884Z             {
2026-06-15T09:27:05.0847029Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:27:05.0847133Z               "line": 901
2026-06-15T09:27:05.0847324Z             },
2026-06-15T09:27:05.0847429Z             {
2026-06-15T09:27:05.0847572Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:27:05.0847691Z               "line": 927
2026-06-15T09:27:05.0847791Z             },
2026-06-15T09:27:05.0847886Z             {
2026-06-15T09:27:05.0848020Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:27:05.0848129Z               "line": 946
2026-06-15T09:27:05.0848226Z             },
2026-06-15T09:27:05.0848325Z             {
2026-06-15T09:27:05.0848467Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:27:05.0848574Z               "line": 977
2026-06-15T09:27:05.0848673Z             },
2026-06-15T09:27:05.0848782Z             {
2026-06-15T09:27:05.0848917Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T09:27:05.0849106Z               "line": 309
2026-06-15T09:27:05.0849201Z             },
2026-06-15T09:27:05.0849310Z             {
2026-06-15T09:27:05.0849442Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T09:27:05.0849552Z               "line": 486
2026-06-15T09:27:05.0849648Z             },
2026-06-15T09:27:05.0849752Z             {
2026-06-15T09:27:05.0849887Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0849995Z               "line": 6934
2026-06-15T09:27:05.0850100Z             },
2026-06-15T09:27:05.0850206Z             {
2026-06-15T09:27:05.0850329Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0850434Z               "line": 7818
2026-06-15T09:27:05.0850535Z             }
2026-06-15T09:27:05.0850635Z           ]
2026-06-15T09:27:05.0850725Z         }
2026-06-15T09:27:05.0850812Z       }
2026-06-15T09:27:05.0850910Z     },
2026-06-15T09:27:05.0851010Z     {
2026-06-15T09:27:05.0851136Z       "id": "REQ-MANIFEST-3",
2026-06-15T09:27:05.0851811Z       "title": "Adapter strings — [strings] KV tree, dot-path get-string resolving through the profile leaf-replace overlay, set-string editing a local profile's [strings] only; data-only (nothing executes a string)",
2026-06-15T09:27:05.0851937Z       "requiredStages": [
2026-06-15T09:27:05.0852037Z         "doc",
2026-06-15T09:27:05.0852133Z         "impl",
2026-06-15T09:27:05.0852237Z         "unit"
2026-06-15T09:27:05.0852328Z       ],
2026-06-15T09:27:05.0852439Z       "stages": {
2026-06-15T09:27:05.0852543Z         "doc": {
2026-06-15T09:27:05.0852661Z           "complete": true,
2026-06-15T09:27:05.0852777Z           "evidence": [
2026-06-15T09:27:05.0852877Z             {
2026-06-15T09:27:05.0852996Z               "path": "CONTEXT.md",
2026-06-15T09:27:05.0853101Z               "line": 81
2026-06-15T09:27:05.0853191Z             }
2026-06-15T09:27:05.0853291Z           ]
2026-06-15T09:27:05.0853388Z         },
2026-06-15T09:27:05.0853497Z         "impl": {
2026-06-15T09:27:05.0853601Z           "complete": true,
2026-06-15T09:27:05.0853717Z           "evidence": [
2026-06-15T09:27:05.0853815Z             {
2026-06-15T09:27:05.0853970Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:27:05.0854074Z               "line": 72
2026-06-15T09:27:05.0854178Z             },
2026-06-15T09:27:05.0854270Z             {
2026-06-15T09:27:05.0854417Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T09:27:05.0854516Z               "line": 101
2026-06-15T09:27:05.0854717Z             },
2026-06-15T09:27:05.0854821Z             {
2026-06-15T09:27:05.0854960Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T09:27:05.0855074Z               "line": 132
2026-06-15T09:27:05.0855178Z             },
2026-06-15T09:27:05.0855275Z             {
2026-06-15T09:27:05.0855436Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:27:05.0855546Z               "line": 532
2026-06-15T09:27:05.0855637Z             },
2026-06-15T09:27:05.0855722Z             {
2026-06-15T09:27:05.0855880Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:27:05.0855995Z               "line": 588
2026-06-15T09:27:05.0856190Z             },
2026-06-15T09:27:05.0856295Z             {
2026-06-15T09:27:05.0856428Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0856538Z               "line": 5052
2026-06-15T09:27:05.0856638Z             },
2026-06-15T09:27:05.0856746Z             {
2026-06-15T09:27:05.0856875Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0856993Z               "line": 5078
2026-06-15T09:27:05.0857115Z             }
2026-06-15T09:27:05.0857212Z           ]
2026-06-15T09:27:05.0857313Z         },
2026-06-15T09:27:05.0857411Z         "int": {
2026-06-15T09:27:05.0857531Z           "complete": false,
2026-06-15T09:27:05.0857641Z           "evidence": []
2026-06-15T09:27:05.0857745Z         },
2026-06-15T09:27:05.0857842Z         "unit": {
2026-06-15T09:27:05.0857965Z           "complete": true,
2026-06-15T09:27:05.0858069Z           "evidence": [
2026-06-15T09:27:05.0858171Z             {
2026-06-15T09:27:05.0858322Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T09:27:05.0858446Z               "line": 371
2026-06-15T09:27:05.0858552Z             },
2026-06-15T09:27:05.0858651Z             {
2026-06-15T09:27:05.0858796Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T09:27:05.0858914Z               "line": 429
2026-06-15T09:27:05.0859081Z             },
2026-06-15T09:27:05.0859186Z             {
2026-06-15T09:27:05.0859324Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:27:05.0859435Z               "line": 1001
2026-06-15T09:27:05.0859548Z             },
2026-06-15T09:27:05.0859652Z             {
2026-06-15T09:27:05.0859771Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0859870Z               "line": 6989
2026-06-15T09:27:05.0859978Z             }
2026-06-15T09:27:05.0860074Z           ]
2026-06-15T09:27:05.0860169Z         }
2026-06-15T09:27:05.0860269Z       }
2026-06-15T09:27:05.0860374Z     },
2026-06-15T09:27:05.0860475Z     {
2026-06-15T09:27:05.0860598Z       "id": "REQ-MANIFEST-4",
2026-06-15T09:27:05.0861353Z       "title": "Keyword hints — [[hints]] {keywords (literal/regex), text}; spt api hint --session emits at most one matched hint per message, once per session (seen-set), declaration-order first match; profiles overlay [[hints]] by leaf-replace",
2026-06-15T09:27:05.0861475Z       "requiredStages": [
2026-06-15T09:27:05.0861575Z         "doc",
2026-06-15T09:27:05.0861681Z         "impl",
2026-06-15T09:27:05.0861776Z         "unit"
2026-06-15T09:27:05.0861881Z       ],
2026-06-15T09:27:05.0861983Z       "stages": {
2026-06-15T09:27:05.0862082Z         "doc": {
2026-06-15T09:27:05.0862204Z           "complete": true,
2026-06-15T09:27:05.0862304Z           "evidence": [
2026-06-15T09:27:05.0862409Z             {
2026-06-15T09:27:05.0862526Z               "path": "CONTEXT.md",
2026-06-15T09:27:05.0862640Z               "line": 88
2026-06-15T09:27:05.0862737Z             }
2026-06-15T09:27:05.0862826Z           ]
2026-06-15T09:27:05.0862926Z         },
2026-06-15T09:27:05.0863037Z         "impl": {
2026-06-15T09:27:05.0863155Z           "complete": true,
2026-06-15T09:27:05.0863261Z           "evidence": [
2026-06-15T09:27:05.0863365Z             {
2026-06-15T09:27:05.0863513Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:27:05.0863614Z               "line": 80
2026-06-15T09:27:05.0863842Z             },
2026-06-15T09:27:05.0863948Z             {
2026-06-15T09:27:05.0864099Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:27:05.0864205Z               "line": 152
2026-06-15T09:27:05.0864310Z             },
2026-06-15T09:27:05.0864405Z             {
2026-06-15T09:27:05.0864549Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:27:05.0864667Z               "line": 83
2026-06-15T09:27:05.0864772Z             },
2026-06-15T09:27:05.0864873Z             {
2026-06-15T09:27:05.0865014Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:27:05.0865137Z               "line": 505
2026-06-15T09:27:05.0865338Z             },
2026-06-15T09:27:05.0865433Z             {
2026-06-15T09:27:05.0865582Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:27:05.0865681Z               "line": 530
2026-06-15T09:27:05.0865781Z             }
2026-06-15T09:27:05.0865883Z           ]
2026-06-15T09:27:05.0865982Z         },
2026-06-15T09:27:05.0866091Z         "int": {
2026-06-15T09:27:05.0866207Z           "complete": false,
2026-06-15T09:27:05.0866321Z           "evidence": []
2026-06-15T09:27:05.0866415Z         },
2026-06-15T09:27:05.0866517Z         "unit": {
2026-06-15T09:27:05.0866631Z           "complete": true,
2026-06-15T09:27:05.0866740Z           "evidence": [
2026-06-15T09:27:05.0866851Z             {
2026-06-15T09:27:05.0867002Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:27:05.0867113Z               "line": 984
2026-06-15T09:27:05.0867213Z             },
2026-06-15T09:27:05.0867316Z             {
2026-06-15T09:27:05.0867464Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:27:05.0867586Z               "line": 1017
2026-06-15T09:27:05.0867685Z             },
2026-06-15T09:27:05.0867786Z             {
2026-06-15T09:27:05.0867924Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:27:05.0868034Z               "line": 862
2026-06-15T09:27:05.0868139Z             }
2026-06-15T09:27:05.0868244Z           ]
2026-06-15T09:27:05.0868348Z         }
2026-06-15T09:27:05.0868444Z       }
2026-06-15T09:27:05.0868544Z     },
2026-06-15T09:27:05.0868648Z     {
2026-06-15T09:27:05.0868769Z       "id": "REQ-MANIFEST-5",
2026-06-15T09:27:05.0871855Z       "title": "File-backed adapter [strings] (M12-W3-T3.1): a [strings] dot-path value MAY be an inline-table FILE POINTER `key = { file = \"rel/path\" }` resolved to the file's contents at get-string time, keeping large bodies (skill-instructions, hint text) out of the manifest. A value-position table with a `file` key IS the pointer form (reserved — cannot double as data). Per-adapter aux storage `adapters/<adapter>/strings/`; pointers resolve relative to it with CONTAINMENT (reject `..`/absolute escaping the dir). UPDATE-SAFETY: a LOCAL profile's file-pointers resolve relative to the user-owned local-profile dir (NOT adapter-shipped strings/, which adapter updates overwrite), or the local profile inlines. Validate-at-register (fail-fast on a bad/escaping/missing pointer) + LAZY read at get-string (live file edits reflect, no re-register) + skip-diagnostics on missing-at-read (no hard-crash, mirrors [digest]). Rides the same leaf-replace profile overlay as the rest of [strings].",
2026-06-15T09:27:05.0871984Z       "requiredStages": [
2026-06-15T09:27:05.0872088Z         "doc",
2026-06-15T09:27:05.0872193Z         "impl",
2026-06-15T09:27:05.0872294Z         "unit"
2026-06-15T09:27:05.0872393Z       ],
2026-06-15T09:27:05.0872499Z       "stages": {
2026-06-15T09:27:05.0872600Z         "doc": {
2026-06-15T09:27:05.0872721Z           "complete": true,
2026-06-15T09:27:05.0872830Z           "evidence": [
2026-06-15T09:27:05.0872936Z             {
2026-06-15T09:27:05.0873057Z               "path": "CONTEXT.md",
2026-06-15T09:27:05.0873162Z               "line": 83
2026-06-15T09:27:05.0873263Z             }
2026-06-15T09:27:05.0873368Z           ]
2026-06-15T09:27:05.0873467Z         },
2026-06-15T09:27:05.0873564Z         "impl": {
2026-06-15T09:27:05.0873791Z           "complete": true,
2026-06-15T09:27:05.0873897Z           "evidence": [
2026-06-15T09:27:05.0873988Z             {
2026-06-15T09:27:05.0874150Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T09:27:05.0874255Z               "line": 120
2026-06-15T09:27:05.0874354Z             }
2026-06-15T09:27:05.0874455Z           ]
2026-06-15T09:27:05.0874565Z         },
2026-06-15T09:27:05.0874669Z         "int": {
2026-06-15T09:27:05.0874785Z           "complete": false,
2026-06-15T09:27:05.0874903Z           "evidence": []
2026-06-15T09:27:05.0875003Z         },
2026-06-15T09:27:05.0875100Z         "unit": {
2026-06-15T09:27:05.0878222Z           "complete": true,
2026-06-15T09:27:05.0878365Z           "evidence": [
2026-06-15T09:27:05.0878465Z             {
2026-06-15T09:27:05.0878627Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T09:27:05.0878742Z               "line": 404
2026-06-15T09:27:05.0878846Z             },
2026-06-15T09:27:05.0879057Z             {
2026-06-15T09:27:05.0879213Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:27:05.0879329Z               "line": 1074
2026-06-15T09:27:05.0879433Z             },
2026-06-15T09:27:05.0879533Z             {
2026-06-15T09:27:05.0879690Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:27:05.0879800Z               "line": 1103
2026-06-15T09:27:05.0879901Z             },
2026-06-15T09:27:05.0880005Z             {
2026-06-15T09:27:05.0880148Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:27:05.0880260Z               "line": 1143
2026-06-15T09:27:05.0880358Z             },
2026-06-15T09:27:05.0880463Z             {
2026-06-15T09:27:05.0880612Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:27:05.0880725Z               "line": 1158
2026-06-15T09:27:05.0880824Z             }
2026-06-15T09:27:05.0880924Z           ]
2026-06-15T09:27:05.0881027Z         }
2026-06-15T09:27:05.0881127Z       }
2026-06-15T09:27:05.0881232Z     },
2026-06-15T09:27:05.0881328Z     {
2026-06-15T09:27:05.0881446Z       "id": "REQ-MANIFEST-6",
2026-06-15T09:27:05.0883756Z       "title": "Cross-adapter fallback target addressing (M12-W3-T3.2): a cross-adapter fallback target is addressed as `<adapter>:<profile>` (not just a bare adapter_name), resolved through the one composite-addressing resolver (registry::resolve_option) at every adapter-option read site so a fallback may select a shipped/local profile (e.g. a `ccs` profile). CONTEXT.md §cross-adapter-fallback reconciled (\"ccs is a profile; cross-adapter fallback may target <adapter>:<profile>\"). Contract-only this milestone: the node-wide fallback SETTING + its rate-limit invocation are deferred to the consuming milestone (the runtime path does not exist yet); this REQ guarantees the ADDRESSING resolves.",
2026-06-15T09:27:05.0883886Z       "requiredStages": [
2026-06-15T09:27:05.0883984Z         "doc",
2026-06-15T09:27:05.0884090Z         "unit"
2026-06-15T09:27:05.0884195Z       ],
2026-06-15T09:27:05.0884299Z       "stages": {
2026-06-15T09:27:05.0884401Z         "doc": {
2026-06-15T09:27:05.0884519Z           "complete": true,
2026-06-15T09:27:05.0884633Z           "evidence": [
2026-06-15T09:27:05.0884729Z             {
2026-06-15T09:27:05.0884848Z               "path": "CONTEXT.md",
2026-06-15T09:27:05.0884948Z               "line": 139
2026-06-15T09:27:05.0885049Z             }
2026-06-15T09:27:05.0885149Z           ]
2026-06-15T09:27:05.0885253Z         },
2026-06-15T09:27:05.0885369Z         "impl": {
2026-06-15T09:27:05.0885477Z           "complete": false,
2026-06-15T09:27:05.0885587Z           "evidence": []
2026-06-15T09:27:05.0885684Z         },
2026-06-15T09:27:05.0885787Z         "int": {
2026-06-15T09:27:05.0885901Z           "complete": false,
2026-06-15T09:27:05.0886012Z           "evidence": []
2026-06-15T09:27:05.0886112Z         },
2026-06-15T09:27:05.0886220Z         "unit": {
2026-06-15T09:27:05.0886339Z           "complete": true,
2026-06-15T09:27:05.0886587Z           "evidence": [
2026-06-15T09:27:05.0886693Z             {
2026-06-15T09:27:05.0886844Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:27:05.0886965Z               "line": 1180
2026-06-15T09:27:05.0887064Z             }
2026-06-15T09:27:05.0887164Z           ]
2026-06-15T09:27:05.0887265Z         }
2026-06-15T09:27:05.0887365Z       }
2026-06-15T09:27:05.0887460Z     },
2026-06-15T09:27:05.0887560Z     {
2026-06-15T09:27:05.0887680Z       "id": "REQ-MANIFEST-7",
2026-06-15T09:27:05.0890904Z       "title": "Adapter-declared shortcut basename (M12-W2 follow-on): an optional `[adapter] shortcut_basename` manifest field names the basename the `spt endpoint run` picker bakes into the generated `<basename>-<id>` launcher shortcut (REQ-RUN-SHORTCUT). Absent ⇒ the harness-agnostic default `spt` (→ `spt-<id>`); an adapter sets it to brand its shortcuts (claude-spt → `cc` → `cc-<id>`), so the Claude-Code-ness lives in the PUBLISHED adapter manifest, never hardcoded in spt-core. The picker reads it from the RESOLVED manifest of the selected adapter (registry::resolve_option), falling back to `spt` when absent/empty/unresolvable. Additive + N-1-safe (serde-default Option, omitted from serialization when absent; old manifests parse clean); manifest.schema.json regenerated from the derive (ADR-0001, CI drift-gated). Documented in docs/MANIFEST.md `[adapter]` section + the claude-spt worked example — the adapter-author contract perri builds spt-claude-code against.",
2026-06-15T09:27:05.0891134Z       "requiredStages": [
2026-06-15T09:27:05.0891242Z         "doc",
2026-06-15T09:27:05.0891341Z         "impl",
2026-06-15T09:27:05.0891442Z         "unit"
2026-06-15T09:27:05.0891545Z       ],
2026-06-15T09:27:05.0891659Z       "stages": {
2026-06-15T09:27:05.0891764Z         "doc": {
2026-06-15T09:27:05.0891879Z           "complete": true,
2026-06-15T09:27:05.0891978Z           "evidence": [
2026-06-15T09:27:05.0892084Z             {
2026-06-15T09:27:05.0892203Z               "path": "docs/MANIFEST.md",
2026-06-15T09:27:05.0892312Z               "line": 34
2026-06-15T09:27:05.0892413Z             }
2026-06-15T09:27:05.0892513Z           ]
2026-06-15T09:27:05.0892612Z         },
2026-06-15T09:27:05.0892713Z         "impl": {
2026-06-15T09:27:05.0892832Z           "complete": true,
2026-06-15T09:27:05.0892942Z           "evidence": [
2026-06-15T09:27:05.0893038Z             {
2026-06-15T09:27:05.0893180Z               "path": "crates/spt/src/picker/data.rs",
2026-06-15T09:27:05.0893280Z               "line": 54
2026-06-15T09:27:05.0893382Z             }
2026-06-15T09:27:05.0893480Z           ]
2026-06-15T09:27:05.0893581Z         },
2026-06-15T09:27:05.0893682Z         "int": {
2026-06-15T09:27:05.0893800Z           "complete": false,
2026-06-15T09:27:05.0893913Z           "evidence": []
2026-06-15T09:27:05.0894004Z         },
2026-06-15T09:27:05.0894112Z         "unit": {
2026-06-15T09:27:05.0894215Z           "complete": true,
2026-06-15T09:27:05.0894336Z           "evidence": [
2026-06-15T09:27:05.0894441Z             {
2026-06-15T09:27:05.0894597Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:27:05.0894718Z               "line": 1177
2026-06-15T09:27:05.0894821Z             }
2026-06-15T09:27:05.0894922Z           ]
2026-06-15T09:27:05.0895017Z         }
2026-06-15T09:27:05.0895113Z       }
2026-06-15T09:27:05.0895207Z     },
2026-06-15T09:27:05.0895304Z     {
2026-06-15T09:27:05.0895417Z       "id": "REQ-MESH-1",
2026-06-15T09:27:05.0897601Z       "title": "Membership proof (seed-proof): symmetric current-epoch seed-knowledge replaces is_trusted at EVERY inbound gate (registry apply, WAN receive, sync, notif, connection accept). MK = HKDF(seed, domain ‖ subnet_id ‖ seed_epoch); mutual channel-bound challenge-response at connect (transcript binds both handshake-proven node pubkeys, both nonces, subnet_id, seed_epoch, role); verified once per connection, cached on the broker ConnEntry, kept warm via QUIC keep-alive so re-proof is restart/partition/rotation-only. Exact-epoch match (re-seed is the sole N-1 exception). SECURITY INVARIANTS: channel-bound (no cross-connection replay), mutual, accepts a member it never paired (the mesh property).",
2026-06-15T09:27:05.0897830Z       "requiredStages": [
2026-06-15T09:27:05.0897935Z         "impl",
2026-06-15T09:27:05.0898039Z         "unit",
2026-06-15T09:27:05.0898150Z         "int"
2026-06-15T09:27:05.0898245Z       ],
2026-06-15T09:27:05.0898359Z       "stages": {
2026-06-15T09:27:05.0898455Z         "doc": {
2026-06-15T09:27:05.0898574Z           "complete": false,
2026-06-15T09:27:05.0898692Z           "evidence": []
2026-06-15T09:27:05.0898789Z         },
2026-06-15T09:27:05.0899053Z         "impl": {
2026-06-15T09:27:05.0899163Z           "complete": true,
2026-06-15T09:27:05.0899276Z           "evidence": [
2026-06-15T09:27:05.0899375Z             {
2026-06-15T09:27:05.0899534Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T09:27:05.0899647Z               "line": 771
2026-06-15T09:27:05.0899748Z             },
2026-06-15T09:27:05.0899848Z             {
2026-06-15T09:27:05.0900005Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T09:27:05.0900106Z               "line": 38
2026-06-15T09:27:05.0900211Z             },
2026-06-15T09:27:05.0900310Z             {
2026-06-15T09:27:05.0900468Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T09:27:05.0900568Z               "line": 161
2026-06-15T09:27:05.0900672Z             },
2026-06-15T09:27:05.0900774Z             {
2026-06-15T09:27:05.0900915Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T09:27:05.0901026Z               "line": 206
2026-06-15T09:27:05.0901131Z             },
2026-06-15T09:27:05.0901235Z             {
2026-06-15T09:27:05.0901380Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T09:27:05.0901478Z               "line": 57
2026-06-15T09:27:05.0901583Z             },
2026-06-15T09:27:05.0901685Z             {
2026-06-15T09:27:05.0901854Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T09:27:05.0901959Z               "line": 24
2026-06-15T09:27:05.0902059Z             },
2026-06-15T09:27:05.0902162Z             {
2026-06-15T09:27:05.0902319Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T09:27:05.0902435Z               "line": 142
2026-06-15T09:27:05.0902543Z             },
2026-06-15T09:27:05.0902644Z             {
2026-06-15T09:27:05.0902796Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T09:27:05.0902905Z               "line": 162
2026-06-15T09:27:05.0903011Z             }
2026-06-15T09:27:05.0903120Z           ]
2026-06-15T09:27:05.0903220Z         },
2026-06-15T09:27:05.0903326Z         "int": {
2026-06-15T09:27:05.0903444Z           "complete": true,
2026-06-15T09:27:05.0903554Z           "evidence": [
2026-06-15T09:27:05.0903650Z             {
2026-06-15T09:27:05.0903807Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-15T09:27:05.0903913Z               "line": 67
2026-06-15T09:27:05.0904012Z             },
2026-06-15T09:27:05.0904117Z             {
2026-06-15T09:27:05.0904271Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-15T09:27:05.0904369Z               "line": 93
2026-06-15T09:27:05.0904482Z             },
2026-06-15T09:27:05.0904578Z             {
2026-06-15T09:27:05.0904733Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-15T09:27:05.0904828Z               "line": 117
2026-06-15T09:27:05.0904934Z             },
2026-06-15T09:27:05.0905038Z             {
2026-06-15T09:27:05.0905186Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-15T09:27:05.0905296Z               "line": 134
2026-06-15T09:27:05.0905401Z             }
2026-06-15T09:27:05.0905501Z           ]
2026-06-15T09:27:05.0905601Z         },
2026-06-15T09:27:05.0905710Z         "unit": {
2026-06-15T09:27:05.0905831Z           "complete": true,
2026-06-15T09:27:05.0905944Z           "evidence": [
2026-06-15T09:27:05.0906160Z             {
2026-06-15T09:27:05.0906312Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T09:27:05.0906426Z               "line": 427
2026-06-15T09:27:05.0906527Z             },
2026-06-15T09:27:05.0906631Z             {
2026-06-15T09:27:05.0906794Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T09:27:05.0906893Z               "line": 376
2026-06-15T09:27:05.0906998Z             },
2026-06-15T09:27:05.0907095Z             {
2026-06-15T09:27:05.0907260Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T09:27:05.0907369Z               "line": 412
2026-06-15T09:27:05.0907556Z             },
2026-06-15T09:27:05.0907659Z             {
2026-06-15T09:27:05.0907823Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T09:27:05.0907932Z               "line": 427
2026-06-15T09:27:05.0908027Z             },
2026-06-15T09:27:05.0908123Z             {
2026-06-15T09:27:05.0908280Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T09:27:05.0908390Z               "line": 438
2026-06-15T09:27:05.0908490Z             },
2026-06-15T09:27:05.0908594Z             {
2026-06-15T09:27:05.0908753Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T09:27:05.0908857Z               "line": 449
2026-06-15T09:27:05.0909025Z             },
2026-06-15T09:27:05.0909120Z             {
2026-06-15T09:27:05.0909271Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T09:27:05.0909382Z               "line": 460
2026-06-15T09:27:05.0909481Z             },
2026-06-15T09:27:05.0909581Z             {
2026-06-15T09:27:05.0909738Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T09:27:05.0909850Z               "line": 496
2026-06-15T09:27:05.0909950Z             },
2026-06-15T09:27:05.0910051Z             {
2026-06-15T09:27:05.0910207Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T09:27:05.0910323Z               "line": 519
2026-06-15T09:27:05.0910427Z             },
2026-06-15T09:27:05.0910526Z             {
2026-06-15T09:27:05.0910685Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T09:27:05.0910794Z               "line": 546
2026-06-15T09:27:05.0910884Z             }
2026-06-15T09:27:05.0910986Z           ]
2026-06-15T09:27:05.0911085Z         }
2026-06-15T09:27:05.0911184Z       }
2026-06-15T09:27:05.0911281Z     },
2026-06-15T09:27:05.0911381Z     {
2026-06-15T09:27:05.0911499Z       "id": "REQ-MESH-2",
2026-06-15T09:27:05.0914139Z       "title": "Member roster: node-level union-merge grow-set (per member: pubkey, label, machine_id, last-known address, last-seen — NOT the seed), the discovery directory the mesh dials by. Seeded IN FULL at pairing (seed-holder hands joiner the whole current roster, incl. offline members — folds in deferred pairing-time hostname capture + post-join address seeding); each node authors its own entry stamped with its lease_epoch, merged strictly-greater-wins (the node_label lease); exchanged only over seed-proof'd member connections; forgery-inert (a fake entry names a pubkey that still can't seed-proof). Removal needs a TOMBSTONE — a per-pubkey revoked marker that propagates, dominates the entry, gates admission (seed-proof ∧ ¬tombstoned), and prevents reinsert; cleared by a completed re-pair of that pubkey. Persists through silence (offline member keeps its entry).",
2026-06-15T09:27:05.0914262Z       "requiredStages": [
2026-06-15T09:27:05.0914357Z         "impl",
2026-06-15T09:27:05.0914463Z         "unit",
2026-06-15T09:27:05.0914568Z         "int"
2026-06-15T09:27:05.0914658Z       ],
2026-06-15T09:27:05.0914774Z       "stages": {
2026-06-15T09:27:05.0914873Z         "doc": {
2026-06-15T09:27:05.0914986Z           "complete": false,
2026-06-15T09:27:05.0915105Z           "evidence": []
2026-06-15T09:27:05.0915204Z         },
2026-06-15T09:27:05.0915303Z         "impl": {
2026-06-15T09:27:05.0915418Z           "complete": true,
2026-06-15T09:27:05.0915636Z           "evidence": [
2026-06-15T09:27:05.0915727Z             {
2026-06-15T09:27:05.0915881Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T09:27:05.0915994Z               "line": 660
2026-06-15T09:27:05.0916091Z             },
2026-06-15T09:27:05.0916195Z             {
2026-06-15T09:27:05.0916352Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T09:27:05.0916471Z               "line": 118
2026-06-15T09:27:05.0916571Z             },
2026-06-15T09:27:05.0916676Z             {
2026-06-15T09:27:05.0916815Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T09:27:05.0916914Z               "line": 347
2026-06-15T09:27:05.0917120Z             },
2026-06-15T09:27:05.0917220Z             {
2026-06-15T09:27:05.0917364Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T09:27:05.0917467Z               "line": 389
2026-06-15T09:27:05.0917563Z             },
2026-06-15T09:27:05.0917664Z             {
2026-06-15T09:27:05.0917806Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T09:27:05.0917914Z               "line": 403
2026-06-15T09:27:05.0918016Z             },
2026-06-15T09:27:05.0918121Z             {
2026-06-15T09:27:05.0918268Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T09:27:05.0918378Z               "line": 492
2026-06-15T09:27:05.0918482Z             },
2026-06-15T09:27:05.0918577Z             {
2026-06-15T09:27:05.0918716Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T09:27:05.0918830Z               "line": 507
2026-06-15T09:27:05.0918931Z             },
2026-06-15T09:27:05.0919112Z             {
2026-06-15T09:27:05.0919255Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T09:27:05.0919365Z               "line": 534
2026-06-15T09:27:05.0919465Z             },
2026-06-15T09:27:05.0919570Z             {
2026-06-15T09:27:05.0919731Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T09:27:05.0919832Z               "line": 207
2026-06-15T09:27:05.0919934Z             },
2026-06-15T09:27:05.0920036Z             {
2026-06-15T09:27:05.0920193Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T09:27:05.0920303Z               "line": 755
2026-06-15T09:27:05.0920396Z             },
2026-06-15T09:27:05.0920505Z             {
2026-06-15T09:27:05.0920645Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T09:27:05.0920744Z               "line": 816
2026-06-15T09:27:05.0920848Z             },
2026-06-15T09:27:05.0920945Z             {
2026-06-15T09:27:05.0921091Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T09:27:05.0921212Z               "line": 869
2026-06-15T09:27:05.0921316Z             },
2026-06-15T09:27:05.0921411Z             {
2026-06-15T09:27:05.0921555Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T09:27:05.0921660Z               "line": 891
2026-06-15T09:27:05.0921764Z             },
2026-06-15T09:27:05.0921870Z             {
2026-06-15T09:27:05.0922008Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:27:05.0922108Z               "line": 122
2026-06-15T09:27:05.0922209Z             },
2026-06-15T09:27:05.0922317Z             {
2026-06-15T09:27:05.0922457Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T09:27:05.0922566Z               "line": 44
2026-06-15T09:27:05.0922671Z             },
2026-06-15T09:27:05.0922767Z             {
2026-06-15T09:27:05.0922909Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T09:27:05.0923013Z               "line": 184
2026-06-15T09:27:05.0923123Z             },
2026-06-15T09:27:05.0923221Z             {
2026-06-15T09:27:05.0923358Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T09:27:05.0923468Z               "line": 211
2026-06-15T09:27:05.0923574Z             },
2026-06-15T09:27:05.0923668Z             {
2026-06-15T09:27:05.0923808Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T09:27:05.0924016Z               "line": 251
2026-06-15T09:27:05.0924117Z             },
2026-06-15T09:27:05.0924218Z             {
2026-06-15T09:27:05.0924350Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T09:27:05.0924456Z               "line": 275
2026-06-15T09:27:05.0924561Z             },
2026-06-15T09:27:05.0924660Z             {
2026-06-15T09:27:05.0924799Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T09:27:05.0924899Z               "line": 289
2026-06-15T09:27:05.0924999Z             },
2026-06-15T09:27:05.0925100Z             {
2026-06-15T09:27:05.0925228Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T09:27:05.0925443Z               "line": 300
2026-06-15T09:27:05.0925536Z             },
2026-06-15T09:27:05.0925641Z             {
2026-06-15T09:27:05.0925793Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T09:27:05.0925906Z               "line": 313
2026-06-15T09:27:05.0926011Z             }
2026-06-15T09:27:05.0926112Z           ]
2026-06-15T09:27:05.0926225Z         },
2026-06-15T09:27:05.0926326Z         "int": {
2026-06-15T09:27:05.0926436Z           "complete": true,
2026-06-15T09:27:05.0926549Z           "evidence": [
2026-06-15T09:27:05.0926646Z             {
2026-06-15T09:27:05.0926812Z               "path": "crates/spt-daemon/tests/rosterprop.rs",
2026-06-15T09:27:05.0926917Z               "line": 116
2026-06-15T09:27:05.0927023Z             },
2026-06-15T09:27:05.0927122Z             {
2026-06-15T09:27:05.0927280Z               "path": "crates/spt-daemon/tests/rosterprop.rs",
2026-06-15T09:27:05.0927379Z               "line": 181
2026-06-15T09:27:05.0927474Z             }
2026-06-15T09:27:05.0927581Z           ]
2026-06-15T09:27:05.0927685Z         },
2026-06-15T09:27:05.0927789Z         "unit": {
2026-06-15T09:27:05.0927900Z           "complete": true,
2026-06-15T09:27:05.0928004Z           "evidence": [
2026-06-15T09:27:05.0928104Z             {
2026-06-15T09:27:05.0928249Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T09:27:05.0928370Z               "line": 999
2026-06-15T09:27:05.0928465Z             },
2026-06-15T09:27:05.0928566Z             {
2026-06-15T09:27:05.0928709Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T09:27:05.0928823Z               "line": 1016
2026-06-15T09:27:05.0928924Z             },
2026-06-15T09:27:05.0929095Z             {
2026-06-15T09:27:05.0929234Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T09:27:05.0929343Z               "line": 1024
2026-06-15T09:27:05.0929452Z             },
2026-06-15T09:27:05.0929549Z             {
2026-06-15T09:27:05.0929705Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T09:27:05.0929820Z               "line": 1048
2026-06-15T09:27:05.0929920Z             },
2026-06-15T09:27:05.0930020Z             {
2026-06-15T09:27:05.0930179Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T09:27:05.0930291Z               "line": 1499
2026-06-15T09:27:05.0930392Z             },
2026-06-15T09:27:05.0930489Z             {
2026-06-15T09:27:05.0930630Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T09:27:05.0930734Z               "line": 347
2026-06-15T09:27:05.0930835Z             },
2026-06-15T09:27:05.0930937Z             {
2026-06-15T09:27:05.0931075Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T09:27:05.0931171Z               "line": 370
2026-06-15T09:27:05.0931271Z             },
2026-06-15T09:27:05.0931375Z             {
2026-06-15T09:27:05.0931520Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T09:27:05.0931638Z               "line": 407
2026-06-15T09:27:05.0931743Z             },
2026-06-15T09:27:05.0931839Z             {
2026-06-15T09:27:05.0931981Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T09:27:05.0932087Z               "line": 431
2026-06-15T09:27:05.0932187Z             },
2026-06-15T09:27:05.0932286Z             {
2026-06-15T09:27:05.0932421Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T09:27:05.0932639Z               "line": 483
2026-06-15T09:27:05.0932745Z             },
2026-06-15T09:27:05.0932849Z             {
2026-06-15T09:27:05.0932988Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T09:27:05.0933103Z               "line": 499
2026-06-15T09:27:05.0933197Z             },
2026-06-15T09:27:05.0933303Z             {
2026-06-15T09:27:05.0933441Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T09:27:05.0933558Z               "line": 514
2026-06-15T09:27:05.0933654Z             },
2026-06-15T09:27:05.0933758Z             {
2026-06-15T09:27:05.0933894Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T09:27:05.0934115Z               "line": 531
2026-06-15T09:27:05.0934218Z             }
2026-06-15T09:27:05.0934320Z           ]
2026-06-15T09:27:05.0934424Z         }
2026-06-15T09:27:05.0934519Z       }
2026-06-15T09:27:05.0934615Z     },
2026-06-15T09:27:05.0934715Z     {
2026-06-15T09:27:05.0934839Z       "id": "REQ-MESH-3",
2026-06-15T09:27:05.0936620Z       "title": "Mesh row fan-out: registry rows stay OWN-AUTHORED; the only change is the push target widens from directly-paired peers to ALL roster members (a wider DIRECT fan-out, never a third-party relay). Every row/message still arrives from its author over a handshake → KNOWN-HAZARDS 7.5 (origin = handshake node) and 4.10 (eviction lease: any future update comes from that node itself, alive) PRESERVED VERBATIM. Closes the staggered A→B→C repro: C (roster-seeded with A at pairing) initiates to A, seed-proof admits C unpaired, A learns C, both push directly.",
2026-06-15T09:27:05.0936747Z       "requiredStages": [
2026-06-15T09:27:05.0936862Z         "impl",
2026-06-15T09:27:05.0936958Z         "unit",
2026-06-15T09:27:05.0937053Z         "int"
2026-06-15T09:27:05.0937157Z       ],
2026-06-15T09:27:05.0937263Z       "stages": {
2026-06-15T09:27:05.0937368Z         "doc": {
2026-06-15T09:27:05.0937482Z           "complete": false,
2026-06-15T09:27:05.0937602Z           "evidence": []
2026-06-15T09:27:05.0937701Z         },
2026-06-15T09:27:05.0937801Z         "impl": {
2026-06-15T09:27:05.0937921Z           "complete": true,
2026-06-15T09:27:05.0938025Z           "evidence": [
2026-06-15T09:27:05.0938126Z             {
2026-06-15T09:27:05.0938278Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:27:05.0938378Z               "line": 641
2026-06-15T09:27:05.0938479Z             }
2026-06-15T09:27:05.0938584Z           ]
2026-06-15T09:27:05.0938678Z         },
2026-06-15T09:27:05.0938780Z         "int": {
2026-06-15T09:27:05.0938898Z           "complete": true,
2026-06-15T09:27:05.0939073Z           "evidence": [
2026-06-15T09:27:05.0939188Z             {
2026-06-15T09:27:05.0939340Z               "path": "crates/spt-daemon/tests/mesh.rs",
2026-06-15T09:27:05.0939455Z               "line": 373
2026-06-15T09:27:05.0939584Z             },
2026-06-15T09:27:05.0939684Z             {
2026-06-15T09:27:05.0939836Z               "path": "crates/spt-daemon/tests/mesh.rs",
2026-06-15T09:27:05.0939941Z               "line": 436
2026-06-15T09:27:05.0940037Z             }
2026-06-15T09:27:05.0940138Z           ]
2026-06-15T09:27:05.0940232Z         },
2026-06-15T09:27:05.0940341Z         "unit": {
2026-06-15T09:27:05.0940448Z           "complete": true,
2026-06-15T09:27:05.0940566Z           "evidence": [
2026-06-15T09:27:05.0940661Z             {
2026-06-15T09:27:05.0940809Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:27:05.0940923Z               "line": 910
2026-06-15T09:27:05.0941024Z             }
2026-06-15T09:27:05.0941124Z           ]
2026-06-15T09:27:05.0941223Z         }
2026-06-15T09:27:05.0941323Z       }
2026-06-15T09:27:05.0941414Z     },
2026-06-15T09:27:05.0941521Z     {
2026-06-15T09:27:05.0941635Z       "id": "REQ-MESH-4",
2026-06-15T09:27:05.0943921Z       "title": "Revoke + timeboxed seed rotation + re-seed grace: `spt subnet revoke <node>...` (list, elevation-gated, revoke-only) writes roster tombstones immediately, then schedules ONE seed rotation (re-mint seed, bump seed_epoch, push new seed CONFIDENTIALLY over member-auth'd TLS connections — never in roster/registry gossip — force-drop revokees) at the close of a coalescing window (default 1h); further revokes in the window join the same rotation (one epoch bump). `--force-rotate-seed` rotates immediately (compromised-node path). RE-SEED GRACE: a node proving the immediately-prior epoch (N-1) AND still on the roster gets a re-seed-only restricted connection (auto-heals a benign offliner); revoked/off-roster denied; ≥2 stale → re-pair.",
2026-06-15T09:27:05.0944161Z       "requiredStages": [
2026-06-15T09:27:05.0944355Z         "impl",
2026-06-15T09:27:05.0944459Z         "unit",
2026-06-15T09:27:05.0944565Z         "int"
2026-06-15T09:27:05.0944665Z       ],
2026-06-15T09:27:05.0944769Z       "stages": {
2026-06-15T09:27:05.0944870Z         "doc": {
2026-06-15T09:27:05.0944985Z           "complete": false,
2026-06-15T09:27:05.0945089Z           "evidence": []
2026-06-15T09:27:05.0945190Z         },
2026-06-15T09:27:05.0945295Z         "impl": {
2026-06-15T09:27:05.0945399Z           "complete": true,
2026-06-15T09:27:05.0945514Z           "evidence": [
2026-06-15T09:27:05.0945614Z             {
2026-06-15T09:27:05.0945776Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T09:27:05.0945877Z               "line": 33
2026-06-15T09:27:05.0945981Z             },
2026-06-15T09:27:05.0946081Z             {
2026-06-15T09:27:05.0946239Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T09:27:05.0946348Z               "line": 68
2026-06-15T09:27:05.0946454Z             },
2026-06-15T09:27:05.0946563Z             {
2026-06-15T09:27:05.0946709Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T09:27:05.0946805Z               "line": 111
2026-06-15T09:27:05.0946913Z             },
2026-06-15T09:27:05.0947011Z             {
2026-06-15T09:27:05.0947155Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T09:27:05.0947265Z               "line": 462
2026-06-15T09:27:05.0947364Z             },
2026-06-15T09:27:05.0947466Z             {
2026-06-15T09:27:05.0947608Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T09:27:05.0947722Z               "line": 711
2026-06-15T09:27:05.0947823Z             },
2026-06-15T09:27:05.0947923Z             {
2026-06-15T09:27:05.0948081Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T09:27:05.0948176Z               "line": 725
2026-06-15T09:27:05.0948280Z             },
2026-06-15T09:27:05.0948381Z             {
2026-06-15T09:27:05.0948528Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:27:05.0948648Z               "line": 132
2026-06-15T09:27:05.0948744Z             },
2026-06-15T09:27:05.0948852Z             {
2026-06-15T09:27:05.0949092Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T09:27:05.0949210Z               "line": 26
2026-06-15T09:27:05.0949306Z             },
2026-06-15T09:27:05.0949417Z             {
2026-06-15T09:27:05.0949562Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T09:27:05.0949662Z               "line": 97
2026-06-15T09:27:05.0949773Z             },
2026-06-15T09:27:05.0949871Z             {
2026-06-15T09:27:05.0950015Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T09:27:05.0950121Z               "line": 119
2026-06-15T09:27:05.0950224Z             },
2026-06-15T09:27:05.0950326Z             {
2026-06-15T09:27:05.0950469Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T09:27:05.0950582Z               "line": 82
2026-06-15T09:27:05.0950684Z             },
2026-06-15T09:27:05.0950793Z             {
2026-06-15T09:27:05.0950931Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T09:27:05.0951045Z               "line": 111
2026-06-15T09:27:05.0951145Z             },
2026-06-15T09:27:05.0951246Z             {
2026-06-15T09:27:05.0951388Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T09:27:05.0951609Z               "line": 232
2026-06-15T09:27:05.0951708Z             },
2026-06-15T09:27:05.0951812Z             {
2026-06-15T09:27:05.0951955Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T09:27:05.0952062Z               "line": 245
2026-06-15T09:27:05.0952157Z             },
2026-06-15T09:27:05.0952263Z             {
2026-06-15T09:27:05.0952386Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0952500Z               "line": 4218
2026-06-15T09:27:05.0952602Z             }
2026-06-15T09:27:05.0952701Z           ]
2026-06-15T09:27:05.0952801Z         },
2026-06-15T09:27:05.0952907Z         "int": {
2026-06-15T09:27:05.0953130Z           "complete": true,
2026-06-15T09:27:05.0953236Z           "evidence": [
2026-06-15T09:27:05.0953336Z             {
2026-06-15T09:27:05.0953483Z               "path": "crates/spt-daemon/tests/reseed.rs",
2026-06-15T09:27:05.0953598Z               "line": 98
2026-06-15T09:27:05.0953697Z             },
2026-06-15T09:27:05.0953803Z             {
2026-06-15T09:27:05.0953955Z               "path": "crates/spt-daemon/tests/reseed.rs",
2026-06-15T09:27:05.0954055Z               "line": 140
2026-06-15T09:27:05.0954161Z             }
2026-06-15T09:27:05.0954260Z           ]
2026-06-15T09:27:05.0954360Z         },
2026-06-15T09:27:05.0954466Z         "unit": {
2026-06-15T09:27:05.0954566Z           "complete": true,
2026-06-15T09:27:05.0954679Z           "evidence": [
2026-06-15T09:27:05.0954779Z             {
2026-06-15T09:27:05.0954939Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T09:27:05.0955033Z               "line": 178
2026-06-15T09:27:05.0955139Z             },
2026-06-15T09:27:05.0955240Z             {
2026-06-15T09:27:05.0955391Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T09:27:05.0955507Z               "line": 242
2026-06-15T09:27:05.0955606Z             },
2026-06-15T09:27:05.0955711Z             {
2026-06-15T09:27:05.0955855Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T09:27:05.0955978Z               "line": 1079
2026-06-15T09:27:05.0956079Z             },
2026-06-15T09:27:05.0956183Z             {
2026-06-15T09:27:05.0956336Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T09:27:05.0956441Z               "line": 1109
2026-06-15T09:27:05.0956545Z             },
2026-06-15T09:27:05.0956641Z             {
2026-06-15T09:27:05.0956785Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T09:27:05.0956903Z               "line": 1129
2026-06-15T09:27:05.0957000Z             },
2026-06-15T09:27:05.0957104Z             {
2026-06-15T09:27:05.0957264Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T09:27:05.0957379Z               "line": 602
2026-06-15T09:27:05.0957487Z             },
2026-06-15T09:27:05.0957586Z             {
2026-06-15T09:27:05.0957735Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T09:27:05.0957844Z               "line": 148
2026-06-15T09:27:05.0957939Z             },
2026-06-15T09:27:05.0958040Z             {
2026-06-15T09:27:05.0958182Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T09:27:05.0958302Z               "line": 169
2026-06-15T09:27:05.0958402Z             },
2026-06-15T09:27:05.0958502Z             {
2026-06-15T09:27:05.0958637Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T09:27:05.0958741Z               "line": 181
2026-06-15T09:27:05.0958840Z             },
2026-06-15T09:27:05.0959032Z             {
2026-06-15T09:27:05.0959170Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T09:27:05.0959271Z               "line": 202
2026-06-15T09:27:05.0959384Z             },
2026-06-15T09:27:05.0959484Z             {
2026-06-15T09:27:05.0959619Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T09:27:05.0959732Z               "line": 375
2026-06-15T09:27:05.0959827Z             },
2026-06-15T09:27:05.0959925Z             {
2026-06-15T09:27:05.0960179Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T09:27:05.0960285Z               "line": 407
2026-06-15T09:27:05.0960380Z             },
2026-06-15T09:27:05.0960479Z             {
2026-06-15T09:27:05.0960600Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0960705Z               "line": 8312
2026-06-15T09:27:05.0960804Z             }
2026-06-15T09:27:05.0960900Z           ]
2026-06-15T09:27:05.0961000Z         }
2026-06-15T09:27:05.0961099Z       }
2026-06-15T09:27:05.0961196Z     },
2026-06-15T09:27:05.0961296Z     {
2026-06-15T09:27:05.0961409Z       "id": "REQ-MESH-5",
2026-06-15T09:27:05.0962871Z       "title": "Hard cutover from pairwise trust: delete peers.json + the is_trusted authorization path (no migration — expendable test fleet, re-pairs fresh under the new model, user decision 2026-06-08). Warn-on-change DEMOTED from a gate to an awareness notice anchored on machine_id (not label): 'machine M, last seen as K1, now presents K2' — fires the same event as the REQ-SUBNET-7 re-pair overwrite. The TrustStore/peers.json code and its call sites are removed, not left dead.",
2026-06-15T09:27:05.0963099Z       "requiredStages": [
2026-06-15T09:27:05.0963200Z         "impl",
2026-06-15T09:27:05.0963304Z         "unit"
2026-06-15T09:27:05.0963404Z       ],
2026-06-15T09:27:05.0963510Z       "stages": {
2026-06-15T09:27:05.0963614Z         "doc": {
2026-06-15T09:27:05.0963729Z           "complete": false,
2026-06-15T09:27:05.0963834Z           "evidence": []
2026-06-15T09:27:05.0963933Z         },
2026-06-15T09:27:05.0964033Z         "impl": {
2026-06-15T09:27:05.0964144Z           "complete": true,
2026-06-15T09:27:05.0964258Z           "evidence": [
2026-06-15T09:27:05.0964353Z             {
2026-06-15T09:27:05.0964501Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T09:27:05.0964610Z               "line": 61
2026-06-15T09:27:05.0964702Z             },
2026-06-15T09:27:05.0964802Z             {
2026-06-15T09:27:05.0964954Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T09:27:05.0965065Z               "line": 109
2026-06-15T09:27:05.0965163Z             },
2026-06-15T09:27:05.0965272Z             {
2026-06-15T09:27:05.0965416Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T09:27:05.0965518Z               "line": 104
2026-06-15T09:27:05.0965637Z             },
2026-06-15T09:27:05.0965747Z             {
2026-06-15T09:27:05.0965899Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T09:27:05.0966005Z               "line": 105
2026-06-15T09:27:05.0966105Z             },
2026-06-15T09:27:05.0966204Z             {
2026-06-15T09:27:05.0966367Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:05.0966476Z               "line": 85
2026-06-15T09:27:05.0966571Z             },
2026-06-15T09:27:05.0966678Z             {
2026-06-15T09:27:05.0966834Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:05.0966944Z               "line": 250
2026-06-15T09:27:05.0967053Z             },
2026-06-15T09:27:05.0967158Z             {
2026-06-15T09:27:05.0967317Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:05.0967420Z               "line": 314
2026-06-15T09:27:05.0967525Z             },
2026-06-15T09:27:05.0967622Z             {
2026-06-15T09:27:05.0967782Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:05.0967891Z               "line": 715
2026-06-15T09:27:05.0967986Z             },
2026-06-15T09:27:05.0968090Z             {
2026-06-15T09:27:05.0968232Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T09:27:05.0968353Z               "line": 101
2026-06-15T09:27:05.0968447Z             },
2026-06-15T09:27:05.0972289Z             {
2026-06-15T09:27:05.0972486Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T09:27:05.0972609Z               "line": 193
2026-06-15T09:27:05.0972710Z             }
2026-06-15T09:27:05.0972815Z           ]
2026-06-15T09:27:05.0973065Z         },
2026-06-15T09:27:05.0973174Z         "int": {
2026-06-15T09:27:05.0973301Z           "complete": false,
2026-06-15T09:27:05.0973407Z           "evidence": []
2026-06-15T09:27:05.0973507Z         },
2026-06-15T09:27:05.0973616Z         "unit": {
2026-06-15T09:27:05.0973722Z           "complete": true,
2026-06-15T09:27:05.0973826Z           "evidence": [
2026-06-15T09:27:05.0973926Z             {
2026-06-15T09:27:05.0974098Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:05.0974212Z               "line": 957
2026-06-15T09:27:05.0974309Z             },
2026-06-15T09:27:05.0974413Z             {
2026-06-15T09:27:05.0974709Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T09:27:05.0974809Z               "line": 462
2026-06-15T09:27:05.0974909Z             }
2026-06-15T09:27:05.0975000Z           ]
2026-06-15T09:27:05.0975089Z         }
2026-06-15T09:27:05.0975189Z       }
2026-06-15T09:27:05.0975291Z     },
2026-06-15T09:27:05.0975400Z     {
2026-06-15T09:27:05.0975514Z       "id": "REQ-MESH-6",
2026-06-15T09:27:05.0976861Z       "title": "Concurrent liveness probes: `spt subnet status --nodes` fans out its offline/serve-probes (REQ-SUBNET-5) CONCURRENTLY — total wall-time bounded by the single-probe ceiling (~3s), never k×ceiling. The mesh makes a node see ALL members (many possibly offline), so a serial probe loop would be offline_count×3s. (Planning verifies the current REQ-SUBNET-5 probe loop's behavior and fixes it if serial.)",
2026-06-15T09:27:05.0976979Z       "requiredStages": [
2026-06-15T09:27:05.0977088Z         "impl",
2026-06-15T09:27:05.0977185Z         "unit"
2026-06-15T09:27:05.0977299Z       ],
2026-06-15T09:27:05.0977394Z       "stages": {
2026-06-15T09:27:05.0977495Z         "doc": {
2026-06-15T09:27:05.0977609Z           "complete": false,
2026-06-15T09:27:05.0977718Z           "evidence": []
2026-06-15T09:27:05.0977824Z         },
2026-06-15T09:27:05.0977928Z         "impl": {
2026-06-15T09:27:05.0978043Z           "complete": true,
2026-06-15T09:27:05.0978158Z           "evidence": [
2026-06-15T09:27:05.0978262Z             {
2026-06-15T09:27:05.0978399Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0978509Z               "line": 3741
2026-06-15T09:27:05.0978607Z             }
2026-06-15T09:27:05.0978711Z           ]
2026-06-15T09:27:05.0978812Z         },
2026-06-15T09:27:05.0978913Z         "int": {
2026-06-15T09:27:05.0979147Z           "complete": false,
2026-06-15T09:27:05.0979256Z           "evidence": []
2026-06-15T09:27:05.0979364Z         },
2026-06-15T09:27:05.0979480Z         "unit": {
2026-06-15T09:27:05.0979594Z           "complete": true,
2026-06-15T09:27:05.0979713Z           "evidence": [
2026-06-15T09:27:05.0979800Z             {
2026-06-15T09:27:05.0979928Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0980037Z               "line": 8842
2026-06-15T09:27:05.0980138Z             },
2026-06-15T09:27:05.0980237Z             {
2026-06-15T09:27:05.0980367Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0980467Z               "line": 8869
2026-06-15T09:27:05.0980566Z             },
2026-06-15T09:27:05.0980667Z             {
2026-06-15T09:27:05.0980786Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.0980900Z               "line": 8893
2026-06-15T09:27:05.0981002Z             }
2026-06-15T09:27:05.0981101Z           ]
2026-06-15T09:27:05.0981195Z         }
2026-06-15T09:27:05.0981290Z       }
2026-06-15T09:27:05.0981395Z     },
2026-06-15T09:27:05.0981496Z     {
2026-06-15T09:27:05.0981614Z       "id": "REQ-MIGRATE-1",
2026-06-15T09:27:05.0981820Z       "title": "Auto-detect and migrate a legacy claude_skill_owl install",
2026-06-15T09:27:05.0981943Z       "requiredStages": [],
2026-06-15T09:27:05.0982044Z       "stages": {
2026-06-15T09:27:05.0982149Z         "doc": {
2026-06-15T09:27:05.0982258Z           "complete": false,
2026-06-15T09:27:05.0982364Z           "evidence": []
2026-06-15T09:27:05.0982458Z         },
2026-06-15T09:27:05.0982679Z         "impl": {
2026-06-15T09:27:05.0982792Z           "complete": false,
2026-06-15T09:27:05.0982912Z           "evidence": []
2026-06-15T09:27:05.0983008Z         },
2026-06-15T09:27:05.0983111Z         "int": {
2026-06-15T09:27:05.0983212Z           "complete": false,
2026-06-15T09:27:05.0983323Z           "evidence": []
2026-06-15T09:27:05.0983426Z         },
2026-06-15T09:27:05.0983526Z         "unit": {
2026-06-15T09:27:05.0983640Z           "complete": false,
2026-06-15T09:27:05.0983748Z           "evidence": []
2026-06-15T09:27:05.0983852Z         }
2026-06-15T09:27:05.0983938Z       }
2026-06-15T09:27:05.0984049Z     },
2026-06-15T09:27:05.0984249Z     {
2026-06-15T09:27:05.0984358Z       "id": "REQ-MSG-1",
2026-06-15T09:27:05.0984854Z       "title": "Local message delivery: TCP-first to a registered address, spool fallback when offline; id->address via registry (stale-clean first); reply routing (__REPLY_TO__)",
2026-06-15T09:27:05.0984969Z       "requiredStages": [
2026-06-15T09:27:05.0985078Z         "impl",
2026-06-15T09:27:05.0985178Z         "unit",
2026-06-15T09:27:05.0985278Z         "int"
2026-06-15T09:27:05.0985378Z       ],
2026-06-15T09:27:05.0985478Z       "stages": {
2026-06-15T09:27:05.0985575Z         "doc": {
2026-06-15T09:27:05.0985678Z           "complete": false,
2026-06-15T09:27:05.0985793Z           "evidence": []
2026-06-15T09:27:05.0985884Z         },
2026-06-15T09:27:05.0985979Z         "impl": {
2026-06-15T09:27:05.0986094Z           "complete": true,
2026-06-15T09:27:05.0986204Z           "evidence": [
2026-06-15T09:27:05.0986312Z             {
2026-06-15T09:27:05.0986450Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T09:27:05.0986568Z               "line": 28
2026-06-15T09:27:05.0986667Z             },
2026-06-15T09:27:05.0986767Z             {
2026-06-15T09:27:05.0986911Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T09:27:05.0987014Z               "line": 94
2026-06-15T09:27:05.0987116Z             },
2026-06-15T09:27:05.0987220Z             {
2026-06-15T09:27:05.0987363Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T09:27:05.0987478Z               "line": 127
2026-06-15T09:27:05.0987583Z             },
2026-06-15T09:27:05.0987677Z             {
2026-06-15T09:27:05.0987817Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T09:27:05.0987917Z               "line": 149
2026-06-15T09:27:05.0988017Z             },
2026-06-15T09:27:05.0988122Z             {
2026-06-15T09:27:05.0988264Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T09:27:05.0988365Z               "line": 174
2026-06-15T09:27:05.0988471Z             },
2026-06-15T09:27:05.0988569Z             {
2026-06-15T09:27:05.0988718Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-15T09:27:05.0988818Z               "line": 18
2026-06-15T09:27:05.0988921Z             },
2026-06-15T09:27:05.0989103Z             {
2026-06-15T09:27:05.0989229Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T09:27:05.0989334Z               "line": 13
2026-06-15T09:27:05.0989434Z             },
2026-06-15T09:27:05.0989534Z             {
2026-06-15T09:27:05.0989658Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T09:27:05.0989759Z               "line": 62
2026-06-15T09:27:05.0989862Z             },
2026-06-15T09:27:05.0989963Z             {
2026-06-15T09:27:05.0990097Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T09:27:05.0990196Z               "line": 13
2026-06-15T09:27:05.0990298Z             }
2026-06-15T09:27:05.0990397Z           ]
2026-06-15T09:27:05.0990497Z         },
2026-06-15T09:27:05.0990597Z         "int": {
2026-06-15T09:27:05.0990717Z           "complete": true,
2026-06-15T09:27:05.0990821Z           "evidence": [
2026-06-15T09:27:05.0990922Z             {
2026-06-15T09:27:05.0991088Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-15T09:27:05.0991194Z               "line": 9
2026-06-15T09:27:05.0991290Z             },
2026-06-15T09:27:05.0991499Z             {
2026-06-15T09:27:05.0991676Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-15T09:27:05.0991789Z               "line": 56
2026-06-15T09:27:05.0991889Z             },
2026-06-15T09:27:05.0991994Z             {
2026-06-15T09:27:05.0992160Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-15T09:27:05.0992271Z               "line": 113
2026-06-15T09:27:05.0992375Z             }
2026-06-15T09:27:05.0992475Z           ]
2026-06-15T09:27:05.0992576Z         },
2026-06-15T09:27:05.0992681Z         "unit": {
2026-06-15T09:27:05.0992804Z           "complete": true,
2026-06-15T09:27:05.0992905Z           "evidence": [
2026-06-15T09:27:05.0994062Z             {
2026-06-15T09:27:05.0994214Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T09:27:05.0994327Z               "line": 203
2026-06-15T09:27:05.0994421Z             },
2026-06-15T09:27:05.0994517Z             {
2026-06-15T09:27:05.0994656Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T09:27:05.0994770Z               "line": 232
2026-06-15T09:27:05.0994866Z             },
2026-06-15T09:27:05.0994975Z             {
2026-06-15T09:27:05.0995109Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T09:27:05.0995219Z               "line": 277
2026-06-15T09:27:05.0995318Z             },
2026-06-15T09:27:05.0995424Z             {
2026-06-15T09:27:05.0995557Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T09:27:05.0995661Z               "line": 300
2026-06-15T09:27:05.0995768Z             },
2026-06-15T09:27:05.0995867Z             {
2026-06-15T09:27:05.0996009Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T09:27:05.0996120Z               "line": 325
2026-06-15T09:27:05.0996219Z             },
2026-06-15T09:27:05.0996314Z             {
2026-06-15T09:27:05.0996459Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-15T09:27:05.0996562Z               "line": 204
2026-06-15T09:27:05.0996659Z             },
2026-06-15T09:27:05.0996769Z             {
2026-06-15T09:27:05.0996924Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-15T09:27:05.0997029Z               "line": 237
2026-06-15T09:27:05.0997138Z             },
2026-06-15T09:27:05.0997250Z             {
2026-06-15T09:27:05.0997399Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-15T09:27:05.0997504Z               "line": 251
2026-06-15T09:27:05.0997608Z             },
2026-06-15T09:27:05.0997700Z             {
2026-06-15T09:27:05.0997828Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-15T09:27:05.0997932Z               "line": 263
2026-06-15T09:27:05.0998029Z             },
2026-06-15T09:27:05.0998134Z             {
2026-06-15T09:27:05.0998267Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T09:27:05.0998367Z               "line": 162
2026-06-15T09:27:05.0998467Z             },
2026-06-15T09:27:05.0998562Z             {
2026-06-15T09:27:05.0998696Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T09:27:05.0998800Z               "line": 242
2026-06-15T09:27:05.0998906Z             },
2026-06-15T09:27:05.0999087Z             {
2026-06-15T09:27:05.0999216Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T09:27:05.0999326Z               "line": 134
2026-06-15T09:27:05.0999425Z             },
2026-06-15T09:27:05.0999519Z             {
2026-06-15T09:27:05.0999648Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T09:27:05.0999751Z               "line": 153
2026-06-15T09:27:05.0999851Z             }
2026-06-15T09:27:05.0999951Z           ]
2026-06-15T09:27:05.1000052Z         }
2026-06-15T09:27:05.1000151Z       }
2026-06-15T09:27:05.1000257Z     },
2026-06-15T09:27:05.1000357Z     {
2026-06-15T09:27:05.1000470Z       "id": "REQ-MSG-2",
2026-06-15T09:27:05.1000766Z       "title": "spt binary CLI surface: send/ring/ready(+--once)/list/stop/whoami, stable arg shapes + exit codes",
2026-06-15T09:27:05.1000891Z       "requiredStages": [
2026-06-15T09:27:05.1001095Z         "impl",
2026-06-15T09:27:05.1001201Z         "unit"
2026-06-15T09:27:05.1001305Z       ],
2026-06-15T09:27:05.1001405Z       "stages": {
2026-06-15T09:27:05.1001507Z         "doc": {
2026-06-15T09:27:05.1001620Z           "complete": false,
2026-06-15T09:27:05.1001724Z           "evidence": []
2026-06-15T09:27:05.1001826Z         },
2026-06-15T09:27:05.1001926Z         "impl": {
2026-06-15T09:27:05.1002054Z           "complete": true,
2026-06-15T09:27:05.1002160Z           "evidence": [
2026-06-15T09:27:05.1002255Z             {
2026-06-15T09:27:05.1002391Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1002492Z               "line": 11
2026-06-15T09:27:05.1002692Z             },
2026-06-15T09:27:05.1002787Z             {
2026-06-15T09:27:05.1002926Z               "path": "crates/spt/src/main.rs",
2026-06-15T09:27:05.1003035Z               "line": 8
2026-06-15T09:27:05.1003136Z             }
2026-06-15T09:27:05.1003236Z           ]
2026-06-15T09:27:05.1003335Z         },
2026-06-15T09:27:05.1003441Z         "int": {
2026-06-15T09:27:05.1003564Z           "complete": false,
2026-06-15T09:27:05.1003659Z           "evidence": []
2026-06-15T09:27:05.1003761Z         },
2026-06-15T09:27:05.1003860Z         "unit": {
2026-06-15T09:27:05.1003974Z           "complete": true,
2026-06-15T09:27:05.1004076Z           "evidence": [
2026-06-15T09:27:05.1004175Z             {
2026-06-15T09:27:05.1004294Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1004405Z               "line": 6217
2026-06-15T09:27:05.1004508Z             },
2026-06-15T09:27:05.1004603Z             {
2026-06-15T09:27:05.1004732Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1004849Z               "line": 6259
2026-06-15T09:27:05.1004944Z             },
2026-06-15T09:27:05.1005039Z             {
2026-06-15T09:27:05.1005159Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1005254Z               "line": 6308
2026-06-15T09:27:05.1005354Z             },
2026-06-15T09:27:05.1005455Z             {
2026-06-15T09:27:05.1005578Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1005679Z               "line": 6331
2026-06-15T09:27:05.1005779Z             },
2026-06-15T09:27:05.1005883Z             {
2026-06-15T09:27:05.1006004Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1006122Z               "line": 8067
2026-06-15T09:27:05.1006222Z             },
2026-06-15T09:27:05.1006328Z             {
2026-06-15T09:27:05.1006451Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1006560Z               "line": 8076
2026-06-15T09:27:05.1006667Z             },
2026-06-15T09:27:05.1006761Z             {
2026-06-15T09:27:05.1006889Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1007000Z               "line": 8090
2026-06-15T09:27:05.1007099Z             }
2026-06-15T09:27:05.1007195Z           ]
2026-06-15T09:27:05.1007292Z         }
2026-06-15T09:27:05.1007385Z       }
2026-06-15T09:27:05.1007489Z     },
2026-06-15T09:27:05.1007594Z     {
2026-06-15T09:27:05.1007707Z       "id": "REQ-MSG-3",
2026-06-15T09:27:05.1008140Z       "title": "Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown",
2026-06-15T09:27:05.1008241Z       "requiredStages": [
2026-06-15T09:27:05.1008341Z         "impl",
2026-06-15T09:27:05.1008440Z         "unit",
2026-06-15T09:27:05.1008541Z         "int"
2026-06-15T09:27:05.1008641Z       ],
2026-06-15T09:27:05.1008745Z       "stages": {
2026-06-15T09:27:05.1008846Z         "doc": {
2026-06-15T09:27:05.1009046Z           "complete": false,
2026-06-15T09:27:05.1009161Z           "evidence": []
2026-06-15T09:27:05.1009261Z         },
2026-06-15T09:27:05.1009365Z         "impl": {
2026-06-15T09:27:05.1009480Z           "complete": true,
2026-06-15T09:27:05.1009581Z           "evidence": [
2026-06-15T09:27:05.1009684Z             {
2026-06-15T09:27:05.1009829Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-15T09:27:05.1010051Z               "line": 19
2026-06-15T09:27:05.1010151Z             },
2026-06-15T09:27:05.1010255Z             {
2026-06-15T09:27:05.1010387Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T09:27:05.1010492Z               "line": 21
2026-06-15T09:27:05.1010594Z             },
2026-06-15T09:27:05.1010692Z             {
2026-06-15T09:27:05.1010832Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T09:27:05.1010927Z               "line": 48
2026-06-15T09:27:05.1011026Z             },
2026-06-15T09:27:05.1011122Z             {
2026-06-15T09:27:05.1011260Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T09:27:05.1011470Z               "line": 151
2026-06-15T09:27:05.1011569Z             }
2026-06-15T09:27:05.1011679Z           ]
2026-06-15T09:27:05.1011781Z         },
2026-06-15T09:27:05.1011880Z         "int": {
2026-06-15T09:27:05.1011999Z           "complete": true,
2026-06-15T09:27:05.1012100Z           "evidence": [
2026-06-15T09:27:05.1012209Z             {
2026-06-15T09:27:05.1012377Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-15T09:27:05.1012486Z               "line": 10
2026-06-15T09:27:05.1012586Z             },
2026-06-15T09:27:05.1012687Z             {
2026-06-15T09:27:05.1012848Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-15T09:27:05.1012956Z               "line": 56
2026-06-15T09:27:05.1013057Z             }
2026-06-15T09:27:05.1013158Z           ]
2026-06-15T09:27:05.1013256Z         },
2026-06-15T09:27:05.1013357Z         "unit": {
2026-06-15T09:27:05.1013462Z           "complete": true,
2026-06-15T09:27:05.1013581Z           "evidence": [
2026-06-15T09:27:05.1013687Z             {
2026-06-15T09:27:05.1013825Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T09:27:05.1013939Z               "line": 205
2026-06-15T09:27:05.1014035Z             },
2026-06-15T09:27:05.1014134Z             {
2026-06-15T09:27:05.1014263Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T09:27:05.1014369Z               "line": 224
2026-06-15T09:27:05.1014468Z             },
2026-06-15T09:27:05.1014568Z             {
2026-06-15T09:27:05.1014707Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T09:27:05.1014811Z               "line": 247
2026-06-15T09:27:05.1014902Z             }
2026-06-15T09:27:05.1015004Z           ]
2026-06-15T09:27:05.1015097Z         }
2026-06-15T09:27:05.1015196Z       }
2026-06-15T09:27:05.1015301Z     },
2026-06-15T09:27:05.1015400Z     {
2026-06-15T09:27:05.1015504Z       "id": "REQ-MSG-4",
2026-06-15T09:27:05.1016396Z       "title": "Listener stream stdout emits EVENT envelope lines (sister-format, ADR-0001): parse the __REPLY_TO__ frame, pass pre-formed typed envelopes through verbatim (no double-wrap), compose <EVENT type=\"msg\" from=…> otherwise, chunk oversized lines into EVENT-PART",
2026-06-15T09:27:05.1016520Z       "requiredStages": [
2026-06-15T09:27:05.1016616Z         "impl",
2026-06-15T09:27:05.1016720Z         "unit",
2026-06-15T09:27:05.1016825Z         "int"
2026-06-15T09:27:05.1016926Z       ],
2026-06-15T09:27:05.1017026Z       "stages": {
2026-06-15T09:27:05.1017139Z         "doc": {
2026-06-15T09:27:05.1017246Z           "complete": false,
2026-06-15T09:27:05.1017359Z           "evidence": []
2026-06-15T09:27:05.1017454Z         },
2026-06-15T09:27:05.1017561Z         "impl": {
2026-06-15T09:27:05.1017683Z           "complete": true,
2026-06-15T09:27:05.1017789Z           "evidence": [
2026-06-15T09:27:05.1017885Z             {
2026-06-15T09:27:05.1018021Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T09:27:05.1018130Z               "line": 19
2026-06-15T09:27:05.1018235Z             },
2026-06-15T09:27:05.1018338Z             {
2026-06-15T09:27:05.1018476Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T09:27:05.1018577Z               "line": 46
2026-06-15T09:27:05.1018676Z             },
2026-06-15T09:27:05.1018776Z             {
2026-06-15T09:27:05.1018920Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:27:05.1019187Z               "line": 409
2026-06-15T09:27:05.1019291Z             },
2026-06-15T09:27:05.1019397Z             {
2026-06-15T09:27:05.1019530Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1019644Z               "line": 2712
2026-06-15T09:27:05.1019740Z             }
2026-06-15T09:27:05.1019845Z           ]
2026-06-15T09:27:05.1019940Z         },
2026-06-15T09:27:05.1020050Z         "int": {
2026-06-15T09:27:05.1020165Z           "complete": true,
2026-06-15T09:27:05.1020274Z           "evidence": [
2026-06-15T09:27:05.1020375Z             {
2026-06-15T09:27:05.1020522Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-15T09:27:05.1020731Z               "line": 98
2026-06-15T09:27:05.1020829Z             },
2026-06-15T09:27:05.1020933Z             {
2026-06-15T09:27:05.1021081Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-15T09:27:05.1021186Z               "line": 128
2026-06-15T09:27:05.1021285Z             }
2026-06-15T09:27:05.1021387Z           ]
2026-06-15T09:27:05.1021492Z         },
2026-06-15T09:27:05.1021595Z         "unit": {
2026-06-15T09:27:05.1021701Z           "complete": true,
2026-06-15T09:27:05.1021806Z           "evidence": [
2026-06-15T09:27:05.1021905Z             {
2026-06-15T09:27:05.1022045Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T09:27:05.1022149Z               "line": 68
2026-06-15T09:27:05.1022254Z             },
2026-06-15T09:27:05.1022355Z             {
2026-06-15T09:27:05.1022488Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T09:27:05.1022607Z               "line": 79
2026-06-15T09:27:05.1022717Z             },
2026-06-15T09:27:05.1022817Z             {
2026-06-15T09:27:05.1022956Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T09:27:05.1023060Z               "line": 90
2026-06-15T09:27:05.1023156Z             },
2026-06-15T09:27:05.1023257Z             {
2026-06-15T09:27:05.1023394Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T09:27:05.1023497Z               "line": 151
2026-06-15T09:27:05.1023603Z             }
2026-06-15T09:27:05.1023709Z           ]
2026-06-15T09:27:05.1023807Z         }
2026-06-15T09:27:05.1023908Z       }
2026-06-15T09:27:05.1024013Z     },
2026-06-15T09:27:05.1024112Z     {
2026-06-15T09:27:05.1024213Z       "id": "REQ-MSG-5",
2026-06-15T09:27:05.1024999Z       "title": "user-msg envelope kind + daemon identity gate: a Gateway endpoint / the local user's CLI author user-msg (the user's authority); agent-family senders re-stamped to plain msg; identity-gated never payload-trusted (KH 7.3/7.5); wire-additive (N-1 receivers tolerate the new type)",
2026-06-15T09:27:05.1025123Z       "requiredStages": [
2026-06-15T09:27:05.1025220Z         "doc",
2026-06-15T09:27:05.1025328Z         "impl",
2026-06-15T09:27:05.1025423Z         "unit"
2026-06-15T09:27:05.1025530Z       ],
2026-06-15T09:27:05.1025624Z       "stages": {
2026-06-15T09:27:05.1025723Z         "doc": {
2026-06-15T09:27:05.1025842Z           "complete": true,
2026-06-15T09:27:05.1025956Z           "evidence": [
2026-06-15T09:27:05.1026060Z             {
2026-06-15T09:27:05.1026169Z               "path": "CONTEXT.md",
2026-06-15T09:27:05.1026280Z               "line": 212
2026-06-15T09:27:05.1026374Z             }
2026-06-15T09:27:05.1026470Z           ]
2026-06-15T09:27:05.1026570Z         },
2026-06-15T09:27:05.1026674Z         "impl": {
2026-06-15T09:27:05.1026790Z           "complete": true,
2026-06-15T09:27:05.1026894Z           "evidence": [
2026-06-15T09:27:05.1026993Z             {
2026-06-15T09:27:05.1027133Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T09:27:05.1027252Z               "line": 60
2026-06-15T09:27:05.1027356Z             },
2026-06-15T09:27:05.1027453Z             {
2026-06-15T09:27:05.1027595Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:27:05.1027695Z               "line": 118
2026-06-15T09:27:05.1027801Z             },
2026-06-15T09:27:05.1027895Z             {
2026-06-15T09:27:05.1028125Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:27:05.1028233Z               "line": 127
2026-06-15T09:27:05.1028334Z             },
2026-06-15T09:27:05.1028431Z             {
2026-06-15T09:27:05.1028567Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:27:05.1028681Z               "line": 141
2026-06-15T09:27:05.1028772Z             },
2026-06-15T09:27:05.1028869Z             {
2026-06-15T09:27:05.1029104Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:27:05.1029217Z               "line": 170
2026-06-15T09:27:05.1029332Z             },
2026-06-15T09:27:05.1029428Z             {
2026-06-15T09:27:05.1029661Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1029766Z               "line": 2458
2026-06-15T09:27:05.1029875Z             }
2026-06-15T09:27:05.1029971Z           ]
2026-06-15T09:27:05.1030067Z         },
2026-06-15T09:27:05.1030166Z         "int": {
2026-06-15T09:27:05.1030281Z           "complete": true,
2026-06-15T09:27:05.1030400Z           "evidence": [
2026-06-15T09:27:05.1030495Z             {
2026-06-15T09:27:05.1030644Z               "path": "crates/spt/tests/gateway_e2e.rs",
2026-06-15T09:27:05.1030748Z               "line": 19
2026-06-15T09:27:05.1030848Z             }
2026-06-15T09:27:05.1030945Z           ]
2026-06-15T09:27:05.1031049Z         },
2026-06-15T09:27:05.1031148Z         "unit": {
2026-06-15T09:27:05.1031257Z           "complete": true,
2026-06-15T09:27:05.1031371Z           "evidence": [
2026-06-15T09:27:05.1031475Z             {
2026-06-15T09:27:05.1031608Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T09:27:05.1031728Z               "line": 192
2026-06-15T09:27:05.1031827Z             },
2026-06-15T09:27:05.1031928Z             {
2026-06-15T09:27:05.1032071Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-15T09:27:05.1032170Z               "line": 154
2026-06-15T09:27:05.1032271Z             },
2026-06-15T09:27:05.1032371Z             {
2026-06-15T09:27:05.1032519Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T09:27:05.1032619Z               "line": 122
2026-06-15T09:27:05.1032709Z             },
2026-06-15T09:27:05.1032809Z             {
2026-06-15T09:27:05.1032948Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:27:05.1033062Z               "line": 444
2026-06-15T09:27:05.1033163Z             },
2026-06-15T09:27:05.1033263Z             {
2026-06-15T09:27:05.1033401Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:27:05.1033502Z               "line": 493
2026-06-15T09:27:05.1033601Z             },
2026-06-15T09:27:05.1033701Z             {
2026-06-15T09:27:05.1033851Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:27:05.1033954Z               "line": 509
2026-06-15T09:27:05.1034062Z             },
2026-06-15T09:27:05.1034158Z             {
2026-06-15T09:27:05.1034297Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:27:05.1034396Z               "line": 528
2026-06-15T09:27:05.1034501Z             },
2026-06-15T09:27:05.1034602Z             {
2026-06-15T09:27:05.1034729Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1034845Z               "line": 6160
2026-06-15T09:27:05.1034945Z             }
2026-06-15T09:27:05.1035044Z           ]
2026-06-15T09:27:05.1035145Z         }
2026-06-15T09:27:05.1035250Z       }
2026-06-15T09:27:05.1035354Z     },
2026-06-15T09:27:05.1035451Z     {
2026-06-15T09:27:05.1035555Z       "id": "REQ-MSG-6",
2026-06-15T09:27:05.1037244Z       "title": "cross-node Gateway user-msg honored via advertised endpoint_type: a user-msg from a Gateway-typed origin survives the receive_wan funnel as user-msg (vs the fail-closed re-stamp), keyed on the QUIC-handshake-proven origin node (never wire `from`). Trust boundary = subnet membership (operator-ratified 2026-06-13); no defense against an in-subnet member forging the type. Instance.endpoint_type is an additive serde-default field extending REQ-INST-7's data model. Absent/unknown type → re-stamp (N-1 rollout grace)",
2026-06-15T09:27:05.1037473Z       "requiredStages": [
2026-06-15T09:27:05.1037577Z         "doc",
2026-06-15T09:27:05.1037679Z         "impl",
2026-06-15T09:27:05.1037779Z         "unit"
2026-06-15T09:27:05.1037878Z       ],
2026-06-15T09:27:05.1037984Z       "stages": {
2026-06-15T09:27:05.1038084Z         "doc": {
2026-06-15T09:27:05.1038202Z           "complete": true,
2026-06-15T09:27:05.1038318Z           "evidence": [
2026-06-15T09:27:05.1038418Z             {
2026-06-15T09:27:05.1038541Z               "path": "CONTEXT.md",
2026-06-15T09:27:05.1038638Z               "line": 215
2026-06-15T09:27:05.1038818Z             }
2026-06-15T09:27:05.1038919Z           ]
2026-06-15T09:27:05.1039113Z         },
2026-06-15T09:27:05.1039217Z         "impl": {
2026-06-15T09:27:05.1039327Z           "complete": true,
2026-06-15T09:27:05.1039444Z           "evidence": [
2026-06-15T09:27:05.1039543Z             {
2026-06-15T09:27:05.1039702Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:05.1039820Z               "line": 177
2026-06-15T09:27:05.1039926Z             },
2026-06-15T09:27:05.1040026Z             {
2026-06-15T09:27:05.1040178Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:05.1040279Z               "line": 422
2026-06-15T09:27:05.1040379Z             },
2026-06-15T09:27:05.1040478Z             {
2026-06-15T09:27:05.1040622Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:05.1040727Z               "line": 445
2026-06-15T09:27:05.1040826Z             },
2026-06-15T09:27:05.1040928Z             {
2026-06-15T09:27:05.1041084Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T09:27:05.1041190Z               "line": 89
2026-06-15T09:27:05.1041289Z             },
2026-06-15T09:27:05.1041389Z             {
2026-06-15T09:27:05.1041539Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.1041656Z               "line": 155
2026-06-15T09:27:05.1041760Z             }
2026-06-15T09:27:05.1041860Z           ]
2026-06-15T09:27:05.1041963Z         },
2026-06-15T09:27:05.1042063Z         "int": {
2026-06-15T09:27:05.1042187Z           "complete": false,
2026-06-15T09:27:05.1042288Z           "evidence": []
2026-06-15T09:27:05.1042392Z         },
2026-06-15T09:27:05.1042493Z         "unit": {
2026-06-15T09:27:05.1042607Z           "complete": true,
2026-06-15T09:27:05.1042711Z           "evidence": [
2026-06-15T09:27:05.1042818Z             {
2026-06-15T09:27:05.1042978Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:05.1043089Z               "line": 1639
2026-06-15T09:27:05.1043203Z             },
2026-06-15T09:27:05.1043303Z             {
2026-06-15T09:27:05.1043447Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T09:27:05.1043546Z               "line": 219
2026-06-15T09:27:05.1043651Z             }
2026-06-15T09:27:05.1043752Z           ]
2026-06-15T09:27:05.1043851Z         }
2026-06-15T09:27:05.1043951Z       }
2026-06-15T09:27:05.1044052Z     },
2026-06-15T09:27:05.1044147Z     {
2026-06-15T09:27:05.1044271Z       "id": "REQ-MSG-ENVELOPE",
2026-06-15T09:27:05.1047071Z       "title": "The <EVENT type=\"msg\" from=…>body</EVENT> envelope (spt-proto::event, the ADR-0001 grammar) is the SOLE canonical arriving-message format at EVERY delivery surface — api listen AND api poll/worker-poll, byte-identical (reverses REQ-MSG-4's 'hook drains keep the raw frame by contract'). __REPLY_TO__ — mis-elevated during the clean-room port to a fake ADR-0001 'stable wire format' (spt-msg/wire.rs, lib.rs) — is REMOVED entirely (spool format_row, the spt-msg TCP frame, emit parse_frame); (from, body) carried structurally, <EVENT> composed once at the delivery boundary. No legacy sister-interop (spt-core never required it). Reply-correlation rebinds onto the structural from / <EVENT from=…> attribute (ADR-0009 access-gate + ADR-0012 Psyche/spt-live reply-target). Self-delimiting by construction → finding F-002 (non-self-delimiting multi-message poll) dissolves. ADR-0020.",
2026-06-15T09:27:05.1047333Z       "requiredStages": [
2026-06-15T09:27:05.1047433Z         "doc",
2026-06-15T09:27:05.1047537Z         "impl",
2026-06-15T09:27:05.1047628Z         "unit",
2026-06-15T09:27:05.1047724Z         "int"
2026-06-15T09:27:05.1047832Z       ],
2026-06-15T09:27:05.1047934Z       "stages": {
2026-06-15T09:27:05.1048033Z         "doc": {
2026-06-15T09:27:05.1048152Z           "complete": true,
2026-06-15T09:27:05.1048244Z           "evidence": [
2026-06-15T09:27:05.1048348Z             {
2026-06-15T09:27:05.1048601Z               "path": "docs/adr/0020-event-envelope-sole-arriving-format-reply-to-removed.md",
2026-06-15T09:27:05.1048810Z               "line": 47
2026-06-15T09:27:05.1048912Z             }
2026-06-15T09:27:05.1049087Z           ]
2026-06-15T09:27:05.1049194Z         },
2026-06-15T09:27:05.1049297Z         "impl": {
2026-06-15T09:27:05.1049416Z           "complete": true,
2026-06-15T09:27:05.1049532Z           "evidence": [
2026-06-15T09:27:05.1049640Z             {
2026-06-15T09:27:05.1049782Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T09:27:05.1049882Z               "line": 20
2026-06-15T09:27:05.1049985Z             },
2026-06-15T09:27:05.1050085Z             {
2026-06-15T09:27:05.1050224Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T09:27:05.1050324Z               "line": 33
2026-06-15T09:27:05.1050423Z             },
2026-06-15T09:27:05.1050525Z             {
2026-06-15T09:27:05.1050648Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T09:27:05.1050748Z               "line": 47
2026-06-15T09:27:05.1050854Z             },
2026-06-15T09:27:05.1050968Z             {
2026-06-15T09:27:05.1051096Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T09:27:05.1051206Z               "line": 58
2026-06-15T09:27:05.1051306Z             },
2026-06-15T09:27:05.1051411Z             {
2026-06-15T09:27:05.1051544Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T09:27:05.1051649Z               "line": 14
2026-06-15T09:27:05.1051755Z             },
2026-06-15T09:27:05.1051855Z             {
2026-06-15T09:27:05.1051983Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T09:27:05.1052094Z               "line": 27
2026-06-15T09:27:05.1052197Z             },
2026-06-15T09:27:05.1052292Z             {
2026-06-15T09:27:05.1052420Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T09:27:05.1052529Z               "line": 40
2026-06-15T09:27:05.1052628Z             },
2026-06-15T09:27:05.1052728Z             {
2026-06-15T09:27:05.1052876Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T09:27:05.1052980Z               "line": 92
2026-06-15T09:27:05.1053087Z             },
2026-06-15T09:27:05.1053186Z             {
2026-06-15T09:27:05.1053334Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T09:27:05.1053434Z               "line": 143
2026-06-15T09:27:05.1053538Z             },
2026-06-15T09:27:05.1053659Z             {
2026-06-15T09:27:05.1053796Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T09:27:05.1053915Z               "line": 201
2026-06-15T09:27:05.1054012Z             },
2026-06-15T09:27:05.1054115Z             {
2026-06-15T09:27:05.1054254Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:27:05.1054355Z               "line": 410
2026-06-15T09:27:05.1054463Z             },
2026-06-15T09:27:05.1054564Z             {
2026-06-15T09:27:05.1054708Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T09:27:05.1054817Z               "line": 78
2026-06-15T09:27:05.1057688Z             },
2026-06-15T09:27:05.1057826Z             {
2026-06-15T09:27:05.1057960Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1058078Z               "line": 2713
2026-06-15T09:27:05.1058174Z             }
2026-06-15T09:27:05.1058279Z           ]
2026-06-15T09:27:05.1058379Z         },
2026-06-15T09:27:05.1058485Z         "int": {
2026-06-15T09:27:05.1058741Z           "complete": true,
2026-06-15T09:27:05.1058842Z           "evidence": [
2026-06-15T09:27:05.1059036Z             {
2026-06-15T09:27:05.1059209Z               "path": "crates/spt/tests/poll_envelope_e2e.rs",
2026-06-15T09:27:05.1059323Z               "line": 15
2026-06-15T09:27:05.1059419Z             }
2026-06-15T09:27:05.1059519Z           ]
2026-06-15T09:27:05.1059619Z         },
2026-06-15T09:27:05.1059719Z         "unit": {
2026-06-15T09:27:05.1059834Z           "complete": true,
2026-06-15T09:27:05.1059938Z           "evidence": [
2026-06-15T09:27:05.1060039Z             {
2026-06-15T09:27:05.1060177Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T09:27:05.1060395Z               "line": 102
2026-06-15T09:27:05.1060494Z             },
2026-06-15T09:27:05.1060593Z             {
2026-06-15T09:27:05.1060731Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T09:27:05.1060832Z               "line": 137
2026-06-15T09:27:05.1060931Z             },
2026-06-15T09:27:05.1061032Z             {
2026-06-15T09:27:05.1061161Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T09:27:05.1061269Z               "line": 98
2026-06-15T09:27:05.1061371Z             },
2026-06-15T09:27:05.1061470Z             {
2026-06-15T09:27:05.1061603Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T09:27:05.1061704Z               "line": 106
2026-06-15T09:27:05.1061804Z             },
2026-06-15T09:27:05.1061899Z             {
2026-06-15T09:27:05.1062034Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T09:27:05.1062128Z               "line": 113
2026-06-15T09:27:05.1062228Z             },
2026-06-15T09:27:05.1062329Z             {
2026-06-15T09:27:05.1062475Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T09:27:05.1062577Z               "line": 122
2026-06-15T09:27:05.1062683Z             }
2026-06-15T09:27:05.1062786Z           ]
2026-06-15T09:27:05.1062880Z         }
2026-06-15T09:27:05.1062980Z       }
2026-06-15T09:27:05.1063080Z     },
2026-06-15T09:27:05.1063183Z     {
2026-06-15T09:27:05.1063284Z       "id": "REQ-NET-1",
2026-06-15T09:27:05.1063507Z       "title": "WAN messaging first-class, behind default-on net feature flag",
2026-06-15T09:27:05.1063623Z       "requiredStages": [
2026-06-15T09:27:05.1063723Z         "impl",
2026-06-15T09:27:05.1063822Z         "unit",
2026-06-15T09:27:05.1063923Z         "int"
2026-06-15T09:27:05.1064023Z       ],
2026-06-15T09:27:05.1064127Z       "stages": {
2026-06-15T09:27:05.1064224Z         "doc": {
2026-06-15T09:27:05.1064347Z           "complete": false,
2026-06-15T09:27:05.1064451Z           "evidence": []
2026-06-15T09:27:05.1064548Z         },
2026-06-15T09:27:05.1064648Z         "impl": {
2026-06-15T09:27:05.1064766Z           "complete": true,
2026-06-15T09:27:05.1064863Z           "evidence": [
2026-06-15T09:27:05.1064963Z             {
2026-06-15T09:27:05.1065110Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T09:27:05.1065216Z               "line": 54
2026-06-15T09:27:05.1065319Z             },
2026-06-15T09:27:05.1065415Z             {
2026-06-15T09:27:05.1065569Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T09:27:05.1065676Z               "line": 594
2026-06-15T09:27:05.1065785Z             },
2026-06-15T09:27:05.1065887Z             {
2026-06-15T09:27:05.1066024Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T09:27:05.1066139Z               "line": 130
2026-06-15T09:27:05.1066235Z             },
2026-06-15T09:27:05.1066338Z             {
2026-06-15T09:27:05.1066488Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T09:27:05.1066597Z               "line": 97
2026-06-15T09:27:05.1066706Z             },
2026-06-15T09:27:05.1066807Z             {
2026-06-15T09:27:05.1066954Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T09:27:05.1067054Z               "line": 159
2026-06-15T09:27:05.1067156Z             },
2026-06-15T09:27:05.1067259Z             {
2026-06-15T09:27:05.1067413Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T09:27:05.1067626Z               "line": 175
2026-06-15T09:27:05.1067727Z             },
2026-06-15T09:27:05.1067823Z             {
2026-06-15T09:27:05.1067964Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T09:27:05.1068073Z               "line": 190
2026-06-15T09:27:05.1068177Z             },
2026-06-15T09:27:05.1068277Z             {
2026-06-15T09:27:05.1068415Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T09:27:05.1068520Z               "line": 271
2026-06-15T09:27:05.1068619Z             },
2026-06-15T09:27:05.1068720Z             {
2026-06-15T09:27:05.1069025Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T09:27:05.1069125Z               "line": 306
2026-06-15T09:27:05.1069225Z             },
2026-06-15T09:27:05.1069326Z             {
2026-06-15T09:27:05.1069469Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T09:27:05.1069578Z               "line": 312
2026-06-15T09:27:05.1069679Z             },
2026-06-15T09:27:05.1069778Z             {
2026-06-15T09:27:05.1069916Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T09:27:05.1070013Z               "line": 318
2026-06-15T09:27:05.1070117Z             },
2026-06-15T09:27:05.1070212Z             {
2026-06-15T09:27:05.1070356Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T09:27:05.1070455Z               "line": 334
2026-06-15T09:27:05.1070551Z             },
2026-06-15T09:27:05.1070657Z             {
2026-06-15T09:27:05.1070794Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T09:27:05.1070907Z               "line": 354
2026-06-15T09:27:05.1071012Z             },
2026-06-15T09:27:05.1071110Z             {
2026-06-15T09:27:05.1071248Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-15T09:27:05.1071349Z               "line": 35
2026-06-15T09:27:05.1071444Z             },
2026-06-15T09:27:05.1071539Z             {
2026-06-15T09:27:05.1071683Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-15T09:27:05.1071782Z               "line": 85
2026-06-15T09:27:05.1071887Z             },
2026-06-15T09:27:05.1071988Z             {
2026-06-15T09:27:05.1072121Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T09:27:05.1072231Z               "line": 138
2026-06-15T09:27:05.1072331Z             },
2026-06-15T09:27:05.1072431Z             {
2026-06-15T09:27:05.1072556Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1072669Z               "line": 2555
2026-06-15T09:27:05.1072760Z             },
2026-06-15T09:27:05.1072866Z             {
2026-06-15T09:27:05.1073008Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T09:27:05.1073108Z               "line": 17
2026-06-15T09:27:05.1073214Z             }
2026-06-15T09:27:05.1073313Z           ]
2026-06-15T09:27:05.1073412Z         },
2026-06-15T09:27:05.1073512Z         "int": {
2026-06-15T09:27:05.1073630Z           "complete": true,
2026-06-15T09:27:05.1073748Z           "evidence": [
2026-06-15T09:27:05.1073844Z             {
2026-06-15T09:27:05.1074006Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T09:27:05.1074101Z               "line": 341
2026-06-15T09:27:05.1074202Z             },
2026-06-15T09:27:05.1074298Z             {
2026-06-15T09:27:05.1074449Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:27:05.1074550Z               "line": 606
2026-06-15T09:27:05.1074650Z             },
2026-06-15T09:27:05.1074754Z             {
2026-06-15T09:27:05.1074898Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:27:05.1075011Z               "line": 879
2026-06-15T09:27:05.1075123Z             }
2026-06-15T09:27:05.1075213Z           ]
2026-06-15T09:27:05.1075322Z         },
2026-06-15T09:27:05.1075423Z         "unit": {
2026-06-15T09:27:05.1075532Z           "complete": true,
2026-06-15T09:27:05.1075637Z           "evidence": [
2026-06-15T09:27:05.1075743Z             {
2026-06-15T09:27:05.1075994Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T09:27:05.1076100Z               "line": 651
2026-06-15T09:27:05.1076199Z             },
2026-06-15T09:27:05.1076303Z             {
2026-06-15T09:27:05.1076442Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T09:27:05.1076542Z               "line": 686
2026-06-15T09:27:05.1076646Z             },
2026-06-15T09:27:05.1076752Z             {
2026-06-15T09:27:05.1076903Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T09:27:05.1077004Z               "line": 936
2026-06-15T09:27:05.1077105Z             },
2026-06-15T09:27:05.1077319Z             {
2026-06-15T09:27:05.1077467Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-15T09:27:05.1077576Z               "line": 201
2026-06-15T09:27:05.1077672Z             },
2026-06-15T09:27:05.1077777Z             {
2026-06-15T09:27:05.1077924Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T09:27:05.1078035Z               "line": 442
2026-06-15T09:27:05.1078133Z             },
2026-06-15T09:27:05.1078234Z             {
2026-06-15T09:27:05.1078374Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T09:27:05.1078482Z               "line": 456
2026-06-15T09:27:05.1078581Z             },
2026-06-15T09:27:05.1078691Z             {
2026-06-15T09:27:05.1078832Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T09:27:05.1078932Z               "line": 475
2026-06-15T09:27:05.1079156Z             },
2026-06-15T09:27:05.1079256Z             {
2026-06-15T09:27:05.1079395Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-15T09:27:05.1079513Z               "line": 120
2026-06-15T09:27:05.1079610Z             },
2026-06-15T09:27:05.1079709Z             {
2026-06-15T09:27:05.1079842Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-15T09:27:05.1079939Z               "line": 163
2026-06-15T09:27:05.1080038Z             },
2026-06-15T09:27:05.1080143Z             {
2026-06-15T09:27:05.1080282Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T09:27:05.1080382Z               "line": 530
2026-06-15T09:27:05.1080482Z             },
2026-06-15T09:27:05.1080583Z             {
2026-06-15T09:27:05.1080715Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T09:27:05.1080815Z               "line": 616
2026-06-15T09:27:05.1080917Z             },
2026-06-15T09:27:05.1081015Z             {
2026-06-15T09:27:05.1081145Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T09:27:05.1081246Z               "line": 1006
2026-06-15T09:27:05.1081344Z             }
2026-06-15T09:27:05.1081453Z           ]
2026-06-15T09:27:05.1081549Z         }
2026-06-15T09:27:05.1081647Z       }
2026-06-15T09:27:05.1081746Z     },
2026-06-15T09:27:05.1081847Z     {
2026-06-15T09:27:05.1081957Z       "id": "REQ-NET-2",
2026-06-15T09:27:05.1082181Z       "title": "n0 relay default + self-host knob + plain-language disclosure",
2026-06-15T09:27:05.1082295Z       "requiredStages": [
2026-06-15T09:27:05.1082385Z         "impl"
2026-06-15T09:27:05.1082487Z       ],
2026-06-15T09:27:05.1082591Z       "stages": {
2026-06-15T09:27:05.1082695Z         "doc": {
2026-06-15T09:27:05.1082811Z           "complete": false,
2026-06-15T09:27:05.1082924Z           "evidence": []
2026-06-15T09:27:05.1083020Z         },
2026-06-15T09:27:05.1083111Z         "impl": {
2026-06-15T09:27:05.1083229Z           "complete": true,
2026-06-15T09:27:05.1083325Z           "evidence": [
2026-06-15T09:27:05.1083426Z             {
2026-06-15T09:27:05.1083572Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T09:27:05.1083687Z               "line": 57
2026-06-15T09:27:05.1083784Z             },
2026-06-15T09:27:05.1083887Z             {
2026-06-15T09:27:05.1084029Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T09:27:05.1084129Z               "line": 71
2026-06-15T09:27:05.1084232Z             },
2026-06-15T09:27:05.1084332Z             {
2026-06-15T09:27:05.1084585Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T09:27:05.1084685Z               "line": 81
2026-06-15T09:27:05.1084786Z             },
2026-06-15T09:27:05.1084890Z             {
2026-06-15T09:27:05.1085029Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T09:27:05.1085143Z               "line": 159
2026-06-15T09:27:05.1085243Z             },
2026-06-15T09:27:05.1085339Z             {
2026-06-15T09:27:05.1085477Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T09:27:05.1085577Z               "line": 175
2026-06-15T09:27:05.1085673Z             },
2026-06-15T09:27:05.1085773Z             {
2026-06-15T09:27:05.1086021Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T09:27:05.1086116Z               "line": 190
2026-06-15T09:27:05.1086211Z             }
2026-06-15T09:27:05.1086313Z           ]
2026-06-15T09:27:05.1086412Z         },
2026-06-15T09:27:05.1086517Z         "int": {
2026-06-15T09:27:05.1086618Z           "complete": false,
2026-06-15T09:27:05.1086731Z           "evidence": []
2026-06-15T09:27:05.1086830Z         },
2026-06-15T09:27:05.1086930Z         "unit": {
2026-06-15T09:27:05.1087045Z           "complete": true,
2026-06-15T09:27:05.1087149Z           "evidence": [
2026-06-15T09:27:05.1087249Z             {
2026-06-15T09:27:05.1087388Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T09:27:05.1087502Z               "line": 402
2026-06-15T09:27:05.1087603Z             }
2026-06-15T09:27:05.1087703Z           ]
2026-06-15T09:27:05.1087797Z         }
2026-06-15T09:27:05.1087884Z       }
2026-06-15T09:27:05.1087984Z     },
2026-06-15T09:27:05.1088089Z     {
2026-06-15T09:27:05.1088203Z       "id": "REQ-NET-3",
2026-06-15T09:27:05.1088404Z       "title": "Cross-node Psyche sync over P2P replaces gh-repo-sync",
2026-06-15T09:27:05.1088518Z       "requiredStages": [
2026-06-15T09:27:05.1088619Z         "impl",
2026-06-15T09:27:05.1088717Z         "unit"
2026-06-15T09:27:05.1088819Z       ],
2026-06-15T09:27:05.1088925Z       "stages": {
2026-06-15T09:27:05.1089113Z         "doc": {
2026-06-15T09:27:05.1089218Z           "complete": false,
2026-06-15T09:27:05.1089321Z           "evidence": []
2026-06-15T09:27:05.1089416Z         },
2026-06-15T09:27:05.1089516Z         "impl": {
2026-06-15T09:27:05.1089632Z           "complete": true,
2026-06-15T09:27:05.1089730Z           "evidence": [
2026-06-15T09:27:05.1089826Z             {
2026-06-15T09:27:05.1089974Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T09:27:05.1090083Z               "line": 39
2026-06-15T09:27:05.1090184Z             },
2026-06-15T09:27:05.1090284Z             {
2026-06-15T09:27:05.1090436Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T09:27:05.1090546Z               "line": 182
2026-06-15T09:27:05.1090641Z             },
2026-06-15T09:27:05.1090741Z             {
2026-06-15T09:27:05.1090880Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T09:27:05.1090984Z               "line": 333
2026-06-15T09:27:05.1091080Z             },
2026-06-15T09:27:05.1091181Z             {
2026-06-15T09:27:05.1091323Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-15T09:27:05.1091434Z               "line": 36
2026-06-15T09:27:05.1091533Z             },
2026-06-15T09:27:05.1091642Z             {
2026-06-15T09:27:05.1091797Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T09:27:05.1091899Z               "line": 158
2026-06-15T09:27:05.1091999Z             },
2026-06-15T09:27:05.1092094Z             {
2026-06-15T09:27:05.1092254Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T09:27:05.1092359Z               "line": 212
2026-06-15T09:27:05.1092455Z             },
2026-06-15T09:27:05.1092559Z             {
2026-06-15T09:27:05.1092707Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T09:27:05.1092808Z               "line": 233
2026-06-15T09:27:05.1092907Z             },
2026-06-15T09:27:05.1093113Z             {
2026-06-15T09:27:05.1093255Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T09:27:05.1093366Z               "line": 291
2026-06-15T09:27:05.1093465Z             },
2026-06-15T09:27:05.1093561Z             {
2026-06-15T09:27:05.1093705Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T09:27:05.1093804Z               "line": 310
2026-06-15T09:27:05.1093904Z             },
2026-06-15T09:27:05.1094005Z             {
2026-06-15T09:27:05.1094156Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T09:27:05.1094257Z               "line": 348
2026-06-15T09:27:05.1094349Z             },
2026-06-15T09:27:05.1094551Z             {
2026-06-15T09:27:05.1094690Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T09:27:05.1094802Z               "line": 393
2026-06-15T09:27:05.1094901Z             },
2026-06-15T09:27:05.1095007Z             {
2026-06-15T09:27:05.1095159Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T09:27:05.1095264Z               "line": 406
2026-06-15T09:27:05.1095365Z             },
2026-06-15T09:27:05.1095469Z             {
2026-06-15T09:27:05.1095623Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T09:27:05.1095732Z               "line": 29
2026-06-15T09:27:05.1095831Z             },
2026-06-15T09:27:05.1095938Z             {
2026-06-15T09:27:05.1096075Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T09:27:05.1096189Z               "line": 72
2026-06-15T09:27:05.1096290Z             },
2026-06-15T09:27:05.1096390Z             {
2026-06-15T09:27:05.1096538Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T09:27:05.1096647Z               "line": 123
2026-06-15T09:27:05.1096748Z             }
2026-06-15T09:27:05.1096853Z           ]
2026-06-15T09:27:05.1096953Z         },
2026-06-15T09:27:05.1097062Z         "int": {
2026-06-15T09:27:05.1097182Z           "complete": false,
2026-06-15T09:27:05.1097291Z           "evidence": []
2026-06-15T09:27:05.1097399Z         },
2026-06-15T09:27:05.1097504Z         "unit": {
2026-06-15T09:27:05.1097615Z           "complete": true,
2026-06-15T09:27:05.1097719Z           "evidence": [
2026-06-15T09:27:05.1097814Z             {
2026-06-15T09:27:05.1097958Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-15T09:27:05.1098062Z               "line": 223
2026-06-15T09:27:05.1098163Z             },
2026-06-15T09:27:05.1098263Z             {
2026-06-15T09:27:05.1098405Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-15T09:27:05.1098502Z               "line": 351
2026-06-15T09:27:05.1098601Z             },
2026-06-15T09:27:05.1098710Z             {
2026-06-15T09:27:05.1098841Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-15T09:27:05.1099025Z               "line": 504
2026-06-15T09:27:05.1099127Z             },
2026-06-15T09:27:05.1099222Z             {
2026-06-15T09:27:05.1099359Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-15T09:27:05.1099461Z               "line": 93
2026-06-15T09:27:05.1099564Z             },
2026-06-15T09:27:05.1099664Z             {
2026-06-15T09:27:05.1099806Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-15T09:27:05.1099914Z               "line": 142
2026-06-15T09:27:05.1100014Z             },
2026-06-15T09:27:05.1100114Z             {
2026-06-15T09:27:05.1100252Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T09:27:05.1100367Z               "line": 315
2026-06-15T09:27:05.1100463Z             },
2026-06-15T09:27:05.1100567Z             {
2026-06-15T09:27:05.1100706Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T09:27:05.1100820Z               "line": 355
2026-06-15T09:27:05.1100919Z             },
2026-06-15T09:27:05.1101021Z             {
2026-06-15T09:27:05.1101168Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T09:27:05.1101282Z               "line": 494
2026-06-15T09:27:05.1101378Z             }
2026-06-15T09:27:05.1101582Z           ]
2026-06-15T09:27:05.1101684Z         }
2026-06-15T09:27:05.1101779Z       }
2026-06-15T09:27:05.1101883Z     },
2026-06-15T09:27:05.1101980Z     {
2026-06-15T09:27:05.1102103Z       "id": "REQ-NODE-IDENTITY",
2026-06-15T09:27:05.1102366Z       "title": "Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex",
2026-06-15T09:27:05.1102478Z       "requiredStages": [
2026-06-15T09:27:05.1102582Z         "impl",
2026-06-15T09:27:05.1102688Z         "unit"
2026-06-15T09:27:05.1102781Z       ],
2026-06-15T09:27:05.1102881Z       "stages": {
2026-06-15T09:27:05.1102986Z         "doc": {
2026-06-15T09:27:05.1103096Z           "complete": false,
2026-06-15T09:27:05.1103316Z           "evidence": []
2026-06-15T09:27:05.1103416Z         },
2026-06-15T09:27:05.1103529Z         "impl": {
2026-06-15T09:27:05.1103640Z           "complete": true,
2026-06-15T09:27:05.1103754Z           "evidence": [
2026-06-15T09:27:05.1103854Z             {
2026-06-15T09:27:05.1103997Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T09:27:05.1104101Z               "line": 60
2026-06-15T09:27:05.1104207Z             },
2026-06-15T09:27:05.1104308Z             {
2026-06-15T09:27:05.1104450Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T09:27:05.1104561Z               "line": 68
2026-06-15T09:27:05.1104669Z             },
2026-06-15T09:27:05.1104765Z             {
2026-06-15T09:27:05.1104904Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T09:27:05.1105007Z               "line": 86
2026-06-15T09:27:05.1105102Z             },
2026-06-15T09:27:05.1105202Z             {
2026-06-15T09:27:05.1105343Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T09:27:05.1105461Z               "line": 120
2026-06-15T09:27:05.1105563Z             },
2026-06-15T09:27:05.1105667Z             {
2026-06-15T09:27:05.1105810Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T09:27:05.1105911Z               "line": 127
2026-06-15T09:27:05.1106015Z             },
2026-06-15T09:27:05.1106110Z             {
2026-06-15T09:27:05.1106259Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T09:27:05.1106363Z               "line": 143
2026-06-15T09:27:05.1106464Z             },
2026-06-15T09:27:05.1106564Z             {
2026-06-15T09:27:05.1106707Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-15T09:27:05.1106803Z               "line": 16
2026-06-15T09:27:05.1106898Z             }
2026-06-15T09:27:05.1106997Z           ]
2026-06-15T09:27:05.1107098Z         },
2026-06-15T09:27:05.1107198Z         "int": {
2026-06-15T09:27:05.1107312Z           "complete": false,
2026-06-15T09:27:05.1107428Z           "evidence": []
2026-06-15T09:27:05.1107527Z         },
2026-06-15T09:27:05.1107627Z         "unit": {
2026-06-15T09:27:05.1107742Z           "complete": true,
2026-06-15T09:27:05.1107842Z           "evidence": [
2026-06-15T09:27:05.1107941Z             {
2026-06-15T09:27:05.1108084Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T09:27:05.1108194Z               "line": 199
2026-06-15T09:27:05.1108298Z             },
2026-06-15T09:27:05.1108399Z             {
2026-06-15T09:27:05.1108542Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T09:27:05.1108641Z               "line": 218
2026-06-15T09:27:05.1108747Z             },
2026-06-15T09:27:05.1108847Z             {
2026-06-15T09:27:05.1109095Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T09:27:05.1109214Z               "line": 234
2026-06-15T09:27:05.1109309Z             },
2026-06-15T09:27:05.1109401Z             {
2026-06-15T09:27:05.1109543Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T09:27:05.1109701Z               "line": 256
2026-06-15T09:27:05.1109800Z             },
2026-06-15T09:27:05.1109905Z             {
2026-06-15T09:27:05.1110040Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-15T09:27:05.1110139Z               "line": 124
2026-06-15T09:27:05.1110343Z             },
2026-06-15T09:27:05.1110446Z             {
2026-06-15T09:27:05.1110579Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-15T09:27:05.1110684Z               "line": 140
2026-06-15T09:27:05.1110779Z             },
2026-06-15T09:27:05.1110879Z             {
2026-06-15T09:27:05.1111014Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-15T09:27:05.1111128Z               "line": 155
2026-06-15T09:27:05.1111227Z             }
2026-06-15T09:27:05.1111328Z           ]
2026-06-15T09:27:05.1111423Z         }
2026-06-15T09:27:05.1111527Z       }
2026-06-15T09:27:05.1111629Z     },
2026-06-15T09:27:05.1111728Z     {
2026-06-15T09:27:05.1111962Z       "id": "REQ-NOTIF-1",
2026-06-15T09:27:05.1112362Z       "title": "Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts",
2026-06-15T09:27:05.1112481Z       "requiredStages": [
2026-06-15T09:27:05.1112583Z         "impl",
2026-06-15T09:27:05.1112686Z         "unit",
2026-06-15T09:27:05.1112782Z         "int"
2026-06-15T09:27:05.1112879Z       ],
2026-06-15T09:27:05.1112983Z       "stages": {
2026-06-15T09:27:05.1113081Z         "doc": {
2026-06-15T09:27:05.1113201Z           "complete": false,
2026-06-15T09:27:05.1113300Z           "evidence": []
2026-06-15T09:27:05.1113412Z         },
2026-06-15T09:27:05.1113508Z         "impl": {
2026-06-15T09:27:05.1113618Z           "complete": true,
2026-06-15T09:27:05.1113732Z           "evidence": [
2026-06-15T09:27:05.1113838Z             {
2026-06-15T09:27:05.1113976Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T09:27:05.1114080Z               "line": 514
2026-06-15T09:27:05.1114196Z             },
2026-06-15T09:27:05.1114291Z             {
2026-06-15T09:27:05.1114428Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:27:05.1114534Z               "line": 30
2026-06-15T09:27:05.1114634Z             },
2026-06-15T09:27:05.1114734Z             {
2026-06-15T09:27:05.1114877Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:27:05.1114982Z               "line": 69
2026-06-15T09:27:05.1115087Z             },
2026-06-15T09:27:05.1115183Z             {
2026-06-15T09:27:05.1115325Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:27:05.1115422Z               "line": 93
2026-06-15T09:27:05.1115521Z             },
2026-06-15T09:27:05.1115615Z             {
2026-06-15T09:27:05.1115744Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:27:05.1115857Z               "line": 107
2026-06-15T09:27:05.1115956Z             },
2026-06-15T09:27:05.1116061Z             {
2026-06-15T09:27:05.1116191Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:27:05.1116308Z               "line": 142
2026-06-15T09:27:05.1116409Z             },
2026-06-15T09:27:05.1116509Z             {
2026-06-15T09:27:05.1116651Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:27:05.1116758Z               "line": 187
2026-06-15T09:27:05.1116867Z             },
2026-06-15T09:27:05.1116961Z             {
2026-06-15T09:27:05.1117105Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:27:05.1117210Z               "line": 258
2026-06-15T09:27:05.1117309Z             },
2026-06-15T09:27:05.1117411Z             {
2026-06-15T09:27:05.1117543Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:27:05.1117649Z               "line": 372
2026-06-15T09:27:05.1117749Z             },
2026-06-15T09:27:05.1117849Z             {
2026-06-15T09:27:05.1117983Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:27:05.1118083Z               "line": 479
2026-06-15T09:27:05.1118201Z             },
2026-06-15T09:27:05.1118298Z             {
2026-06-15T09:27:05.1118449Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T09:27:05.1118553Z               "line": 24
2026-06-15T09:27:05.1118659Z             },
2026-06-15T09:27:05.1118754Z             {
2026-06-15T09:27:05.1119054Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T09:27:05.1119173Z               "line": 34
2026-06-15T09:27:05.1119274Z             },
2026-06-15T09:27:05.1119379Z             {
2026-06-15T09:27:05.1119521Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T09:27:05.1119632Z               "line": 60
2026-06-15T09:27:05.1119731Z             },
2026-06-15T09:27:05.1119831Z             {
2026-06-15T09:27:05.1119979Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T09:27:05.1120089Z               "line": 82
2026-06-15T09:27:05.1120199Z             },
2026-06-15T09:27:05.1120290Z             {
2026-06-15T09:27:05.1120537Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T09:27:05.1120652Z               "line": 94
2026-06-15T09:27:05.1120751Z             },
2026-06-15T09:27:05.1120850Z             {
2026-06-15T09:27:05.1120992Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T09:27:05.1121091Z               "line": 96
2026-06-15T09:27:05.1121196Z             },
2026-06-15T09:27:05.1121302Z             {
2026-06-15T09:27:05.1121453Z               "path": "crates/spt-daemon/src/pump/notif.rs",
2026-06-15T09:27:05.1121559Z               "line": 44
2026-06-15T09:27:05.1121664Z             },
2026-06-15T09:27:05.1121758Z             {
2026-06-15T09:27:05.1121893Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-15T09:27:05.1121997Z               "line": 20
2026-06-15T09:27:05.1122097Z             },
2026-06-15T09:27:05.1122198Z             {
2026-06-15T09:27:05.1122341Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-15T09:27:05.1122455Z               "line": 30
2026-06-15T09:27:05.1122565Z             },
2026-06-15T09:27:05.1122665Z             {
2026-06-15T09:27:05.1122800Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-15T09:27:05.1122903Z               "line": 50
2026-06-15T09:27:05.1123004Z             },
2026-06-15T09:27:05.1123110Z             {
2026-06-15T09:27:05.1123256Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T09:27:05.1123356Z               "line": 28
2026-06-15T09:27:05.1123453Z             },
2026-06-15T09:27:05.1123552Z             {
2026-06-15T09:27:05.1123689Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T09:27:05.1123803Z               "line": 126
2026-06-15T09:27:05.1123902Z             },
2026-06-15T09:27:05.1124006Z             {
2026-06-15T09:27:05.1124146Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T09:27:05.1124255Z               "line": 161
2026-06-15T09:27:05.1124354Z             },
2026-06-15T09:27:05.1124451Z             {
2026-06-15T09:27:05.1124593Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T09:27:05.1124688Z               "line": 202
2026-06-15T09:27:05.1124794Z             },
2026-06-15T09:27:05.1124893Z             {
2026-06-15T09:27:05.1125032Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T09:27:05.1125146Z               "line": 213
2026-06-15T09:27:05.1125236Z             },
2026-06-15T09:27:05.1125337Z             {
2026-06-15T09:27:05.1125466Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T09:27:05.1125570Z               "line": 238
2026-06-15T09:27:05.1125672Z             },
2026-06-15T09:27:05.1125767Z             {
2026-06-15T09:27:05.1125894Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T09:27:05.1125996Z               "line": 261
2026-06-15T09:27:05.1126100Z             },
2026-06-15T09:27:05.1126203Z             {
2026-06-15T09:27:05.1126341Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:27:05.1126441Z               "line": 82
2026-06-15T09:27:05.1126549Z             }
2026-06-15T09:27:05.1126654Z           ]
2026-06-15T09:27:05.1126751Z         },
2026-06-15T09:27:05.1126854Z         "int": {
2026-06-15T09:27:05.1126969Z           "complete": true,
2026-06-15T09:27:05.1127074Z           "evidence": [
2026-06-15T09:27:05.1127173Z             {
2026-06-15T09:27:05.1127422Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T09:27:05.1127526Z               "line": 285
2026-06-15T09:27:05.1127628Z             },
2026-06-15T09:27:05.1127727Z             {
2026-06-15T09:27:05.1127865Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-15T09:27:05.1127981Z               "line": 102
2026-06-15T09:27:05.1128080Z             },
2026-06-15T09:27:05.1128185Z             {
2026-06-15T09:27:05.1128333Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:27:05.1128432Z               "line": 615
2026-06-15T09:27:05.1128534Z             },
2026-06-15T09:27:05.1128629Z             {
2026-06-15T09:27:05.1128859Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:27:05.1129047Z               "line": 1008
2026-06-15T09:27:05.1129146Z             }
2026-06-15T09:27:05.1129248Z           ]
2026-06-15T09:27:05.1129343Z         },
2026-06-15T09:27:05.1129456Z         "unit": {
2026-06-15T09:27:05.1129567Z           "complete": true,
2026-06-15T09:27:05.1129690Z           "evidence": [
2026-06-15T09:27:05.1129790Z             {
2026-06-15T09:27:05.1129934Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:27:05.1130038Z               "line": 572
2026-06-15T09:27:05.1130139Z             },
2026-06-15T09:27:05.1130234Z             {
2026-06-15T09:27:05.1130377Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:27:05.1130488Z               "line": 636
2026-06-15T09:27:05.1130587Z             },
2026-06-15T09:27:05.1130687Z             {
2026-06-15T09:27:05.1130827Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:27:05.1130939Z               "line": 740
2026-06-15T09:27:05.1131049Z             },
2026-06-15T09:27:05.1131151Z             {
2026-06-15T09:27:05.1131292Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:27:05.1131396Z               "line": 772
2026-06-15T09:27:05.1131496Z             },
2026-06-15T09:27:05.1131599Z             {
2026-06-15T09:27:05.1131733Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:27:05.1131843Z               "line": 840
2026-06-15T09:27:05.1131947Z             },
2026-06-15T09:27:05.1132048Z             {
2026-06-15T09:27:05.1132186Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:27:05.1132281Z               "line": 898
2026-06-15T09:27:05.1132391Z             },
2026-06-15T09:27:05.1132486Z             {
2026-06-15T09:27:05.1132629Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:27:05.1135358Z               "line": 1173
2026-06-15T09:27:05.1135487Z             },
2026-06-15T09:27:05.1135592Z             {
2026-06-15T09:27:05.1135782Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T09:27:05.1135897Z               "line": 157
2026-06-15T09:27:05.1135998Z             },
2026-06-15T09:27:05.1136102Z             {
2026-06-15T09:27:05.1136260Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T09:27:05.1136373Z               "line": 250
2026-06-15T09:27:05.1136483Z             },
2026-06-15T09:27:05.1136580Z             {
2026-06-15T09:27:05.1136726Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T09:27:05.1136825Z               "line": 273
2026-06-15T09:27:05.1136930Z             },
2026-06-15T09:27:05.1137029Z             {
2026-06-15T09:27:05.1137176Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T09:27:05.1137286Z               "line": 355
2026-06-15T09:27:05.1137386Z             },
2026-06-15T09:27:05.1137490Z             {
2026-06-15T09:27:05.1137629Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T09:27:05.1137748Z               "line": 392
2026-06-15T09:27:05.1137844Z             },
2026-06-15T09:27:05.1137944Z             {
2026-06-15T09:27:05.1138101Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-15T09:27:05.1138202Z               "line": 131
2026-06-15T09:27:05.1138306Z             },
2026-06-15T09:27:05.1138531Z             {
2026-06-15T09:27:05.1138683Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-15T09:27:05.1138784Z               "line": 72
2026-06-15T09:27:05.1138884Z             },
2026-06-15T09:27:05.1139074Z             {
2026-06-15T09:27:05.1139217Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-15T09:27:05.1139322Z               "line": 97
2026-06-15T09:27:05.1139419Z             },
2026-06-15T09:27:05.1139523Z             {
2026-06-15T09:27:05.1139664Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T09:27:05.1139764Z               "line": 379
2026-06-15T09:27:05.1139866Z             },
2026-06-15T09:27:05.1140060Z             {
2026-06-15T09:27:05.1140204Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T09:27:05.1140307Z               "line": 417
2026-06-15T09:27:05.1140404Z             },
2026-06-15T09:27:05.1140508Z             {
2026-06-15T09:27:05.1140646Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T09:27:05.1140762Z               "line": 433
2026-06-15T09:27:05.1140861Z             },
2026-06-15T09:27:05.1140961Z             {
2026-06-15T09:27:05.1141086Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T09:27:05.1141195Z               "line": 472
2026-06-15T09:27:05.1141300Z             },
2026-06-15T09:27:05.1141401Z             {
2026-06-15T09:27:05.1141538Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T09:27:05.1141638Z               "line": 489
2026-06-15T09:27:05.1141740Z             },
2026-06-15T09:27:05.1141838Z             {
2026-06-15T09:27:05.1141971Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T09:27:05.1142085Z               "line": 517
2026-06-15T09:27:05.1142183Z             },
2026-06-15T09:27:05.1142283Z             {
2026-06-15T09:27:05.1142418Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T09:27:05.1142521Z               "line": 548
2026-06-15T09:27:05.1142622Z             },
2026-06-15T09:27:05.1142718Z             {
2026-06-15T09:27:05.1142870Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:27:05.1142971Z               "line": 621
2026-06-15T09:27:05.1143070Z             }
2026-06-15T09:27:05.1143160Z           ]
2026-06-15T09:27:05.1143261Z         }
2026-06-15T09:27:05.1143361Z       }
2026-06-15T09:27:05.1143466Z     },
2026-06-15T09:27:05.1143566Z     {
2026-06-15T09:27:05.1143671Z       "id": "REQ-NOTIF-2",
2026-06-15T09:27:05.1143981Z       "title": "spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)",
2026-06-15T09:27:05.1144095Z       "requiredStages": [
2026-06-15T09:27:05.1144201Z         "doc",
2026-06-15T09:27:05.1144301Z         "impl",
2026-06-15T09:27:05.1144400Z         "unit",
2026-06-15T09:27:05.1144496Z         "int"
2026-06-15T09:27:05.1144583Z       ],
2026-06-15T09:27:05.1144686Z       "stages": {
2026-06-15T09:27:05.1144785Z         "doc": {
2026-06-15T09:27:05.1144905Z           "complete": true,
2026-06-15T09:27:05.1145017Z           "evidence": [
2026-06-15T09:27:05.1145116Z             {
2026-06-15T09:27:05.1145237Z               "path": "CONTEXT.md",
2026-06-15T09:27:05.1145337Z               "line": 451
2026-06-15T09:27:05.1145436Z             },
2026-06-15T09:27:05.1145538Z             {
2026-06-15T09:27:05.1145656Z               "path": "docs/MANIFEST.md",
2026-06-15T09:27:05.1145760Z               "line": 74
2026-06-15T09:27:05.1145862Z             }
2026-06-15T09:27:05.1145971Z           ]
2026-06-15T09:27:05.1146066Z         },
2026-06-15T09:27:05.1146172Z         "impl": {
2026-06-15T09:27:05.1146281Z           "complete": true,
2026-06-15T09:27:05.1146385Z           "evidence": [
2026-06-15T09:27:05.1146487Z             {
2026-06-15T09:27:05.1146633Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:27:05.1146743Z               "line": 287
2026-06-15T09:27:05.1146839Z             },
2026-06-15T09:27:05.1146938Z             {
2026-06-15T09:27:05.1147082Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:27:05.1147309Z               "line": 301
2026-06-15T09:27:05.1147409Z             },
2026-06-15T09:27:05.1147514Z             {
2026-06-15T09:27:05.1147654Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:27:05.1147760Z               "line": 326
2026-06-15T09:27:05.1147856Z             },
2026-06-15T09:27:05.1147960Z             {
2026-06-15T09:27:05.1148104Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:27:05.1148199Z               "line": 199
2026-06-15T09:27:05.1148298Z             },
2026-06-15T09:27:05.1148400Z             {
2026-06-15T09:27:05.1148538Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:27:05.1148715Z               "line": 91
2026-06-15T09:27:05.1148814Z             },
2026-06-15T09:27:05.1148914Z             {
2026-06-15T09:27:05.1149110Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1149224Z               "line": 1957
2026-06-15T09:27:05.1149324Z             },
2026-06-15T09:27:05.1149430Z             {
2026-06-15T09:27:05.1149553Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1149664Z               "line": 2006
2026-06-15T09:27:05.1149759Z             },
2026-06-15T09:27:05.1149858Z             {
2026-06-15T09:27:05.1149979Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1150083Z               "line": 2085
2026-06-15T09:27:05.1150172Z             },
2026-06-15T09:27:05.1150281Z             {
2026-06-15T09:27:05.1150401Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1150501Z               "line": 2124
2026-06-15T09:27:05.1150600Z             }
2026-06-15T09:27:05.1150702Z           ]
2026-06-15T09:27:05.1150802Z         },
2026-06-15T09:27:05.1150896Z         "int": {
2026-06-15T09:27:05.1151012Z           "complete": true,
2026-06-15T09:27:05.1151121Z           "evidence": [
2026-06-15T09:27:05.1151221Z             {
2026-06-15T09:27:05.1151365Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:27:05.1151464Z               "line": 741
2026-06-15T09:27:05.1151569Z             },
2026-06-15T09:27:05.1151665Z             {
2026-06-15T09:27:05.1151807Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:27:05.1151909Z               "line": 1161
2026-06-15T09:27:05.1152004Z             }
2026-06-15T09:27:05.1152108Z           ]
2026-06-15T09:27:05.1152213Z         },
2026-06-15T09:27:05.1152309Z         "unit": {
2026-06-15T09:27:05.1152407Z           "complete": true,
2026-06-15T09:27:05.1152511Z           "evidence": [
2026-06-15T09:27:05.1152603Z             {
2026-06-15T09:27:05.1152748Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:27:05.1152858Z               "line": 1022
2026-06-15T09:27:05.1152958Z             },
2026-06-15T09:27:05.1153063Z             {
2026-06-15T09:27:05.1153201Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:27:05.1153306Z               "line": 1090
2026-06-15T09:27:05.1153410Z             },
2026-06-15T09:27:05.1153511Z             {
2026-06-15T09:27:05.1153635Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1153739Z               "line": 6604
2026-06-15T09:27:05.1153836Z             },
2026-06-15T09:27:05.1153935Z             {
2026-06-15T09:27:05.1154068Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1154165Z               "line": 6659
2026-06-15T09:27:05.1154269Z             }
2026-06-15T09:27:05.1154364Z           ]
2026-06-15T09:27:05.1154461Z         }
2026-06-15T09:27:05.1154570Z       }
2026-06-15T09:27:05.1154660Z     },
2026-06-15T09:27:05.1154761Z     {
2026-06-15T09:27:05.1154875Z       "id": "REQ-PAIR-1",
2026-06-15T09:27:05.1155013Z       "title": "TOTP-seeded SPAKE2 pairing",
2026-06-15T09:27:05.1155134Z       "requiredStages": [
2026-06-15T09:27:05.1155232Z         "impl",
2026-06-15T09:27:05.1155332Z         "unit",
2026-06-15T09:27:05.1155427Z         "int"
2026-06-15T09:27:05.1155531Z       ],
2026-06-15T09:27:05.1155630Z       "stages": {
2026-06-15T09:27:05.1155835Z         "doc": {
2026-06-15T09:27:05.1155949Z           "complete": false,
2026-06-15T09:27:05.1156054Z           "evidence": []
2026-06-15T09:27:05.1156155Z         },
2026-06-15T09:27:05.1156258Z         "impl": {
2026-06-15T09:27:05.1156374Z           "complete": true,
2026-06-15T09:27:05.1156469Z           "evidence": [
2026-06-15T09:27:05.1156573Z             {
2026-06-15T09:27:05.1156737Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T09:27:05.1156841Z               "line": 27
2026-06-15T09:27:05.1156936Z             },
2026-06-15T09:27:05.1157027Z             {
2026-06-15T09:27:05.1157184Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T09:27:05.1157386Z               "line": 88
2026-06-15T09:27:05.1157484Z             },
2026-06-15T09:27:05.1157585Z             {
2026-06-15T09:27:05.1157729Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T09:27:05.1157837Z               "line": 110
2026-06-15T09:27:05.1157945Z             },
2026-06-15T09:27:05.1158046Z             {
2026-06-15T09:27:05.1158187Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T09:27:05.1158301Z               "line": 153
2026-06-15T09:27:05.1158397Z             },
2026-06-15T09:27:05.1158497Z             {
2026-06-15T09:27:05.1158650Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T09:27:05.1158755Z               "line": 182
2026-06-15T09:27:05.1158854Z             },
2026-06-15T09:27:05.1159031Z             {
2026-06-15T09:27:05.1159183Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T09:27:05.1159294Z               "line": 29
2026-06-15T09:27:05.1159403Z             },
2026-06-15T09:27:05.1159503Z             {
2026-06-15T09:27:05.1159670Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T09:27:05.1159775Z               "line": 31
2026-06-15T09:27:05.1159875Z             },
2026-06-15T09:27:05.1159980Z             {
2026-06-15T09:27:05.1160142Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T09:27:05.1160243Z               "line": 44
2026-06-15T09:27:05.1160342Z             },
2026-06-15T09:27:05.1160438Z             {
2026-06-15T09:27:05.1160591Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T09:27:05.1160699Z               "line": 171
2026-06-15T09:27:05.1160798Z             },
2026-06-15T09:27:05.1160904Z             {
2026-06-15T09:27:05.1161047Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T09:27:05.1161147Z               "line": 376
2026-06-15T09:27:05.1161243Z             }
2026-06-15T09:27:05.1161348Z           ]
2026-06-15T09:27:05.1161447Z         },
2026-06-15T09:27:05.1161548Z         "int": {
2026-06-15T09:27:05.1161667Z           "complete": true,
2026-06-15T09:27:05.1161766Z           "evidence": [
2026-06-15T09:27:05.1161872Z             {
2026-06-15T09:27:05.1162010Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:27:05.1162120Z               "line": 576
2026-06-15T09:27:05.1162220Z             },
2026-06-15T09:27:05.1162310Z             {
2026-06-15T09:27:05.1162454Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:27:05.1162549Z               "line": 793
2026-06-15T09:27:05.1162653Z             }
2026-06-15T09:27:05.1162754Z           ]
2026-06-15T09:27:05.1162855Z         },
2026-06-15T09:27:05.1162958Z         "unit": {
2026-06-15T09:27:05.1163071Z           "complete": true,
2026-06-15T09:27:05.1163177Z           "evidence": [
2026-06-15T09:27:05.1163275Z             {
2026-06-15T09:27:05.1163433Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T09:27:05.1163543Z               "line": 236
2026-06-15T09:27:05.1163646Z             },
2026-06-15T09:27:05.1163747Z             {
2026-06-15T09:27:05.1163895Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T09:27:05.1164004Z               "line": 349
2026-06-15T09:27:05.1164271Z             },
2026-06-15T09:27:05.1164367Z             {
2026-06-15T09:27:05.1164510Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T09:27:05.1164614Z               "line": 194
2026-06-15T09:27:05.1164711Z             },
2026-06-15T09:27:05.1164801Z             {
2026-06-15T09:27:05.1164948Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T09:27:05.1165054Z               "line": 216
2026-06-15T09:27:05.1165153Z             },
2026-06-15T09:27:05.1165253Z             {
2026-06-15T09:27:05.1165412Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T09:27:05.1165510Z               "line": 230
2026-06-15T09:27:05.1165713Z             },
2026-06-15T09:27:05.1165807Z             {
2026-06-15T09:27:05.1165948Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T09:27:05.1166049Z               "line": 242
2026-06-15T09:27:05.1166147Z             },
2026-06-15T09:27:05.1166251Z             {
2026-06-15T09:27:05.1166410Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T09:27:05.1166513Z               "line": 256
2026-06-15T09:27:05.1166604Z             },
2026-06-15T09:27:05.1166700Z             {
2026-06-15T09:27:05.1166842Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T09:27:05.1166939Z               "line": 270
2026-06-15T09:27:05.1167048Z             },
2026-06-15T09:27:05.1167143Z             {
2026-06-15T09:27:05.1167292Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T09:27:05.1167391Z               "line": 277
2026-06-15T09:27:05.1167491Z             },
2026-06-15T09:27:05.1167592Z             {
2026-06-15T09:27:05.1167744Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T09:27:05.1167840Z               "line": 295
2026-06-15T09:27:05.1167941Z             },
2026-06-15T09:27:05.1168044Z             {
2026-06-15T09:27:05.1168198Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T09:27:05.1168294Z               "line": 968
2026-06-15T09:27:05.1168387Z             },
2026-06-15T09:27:05.1168481Z             {
2026-06-15T09:27:05.1168625Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T09:27:05.1168737Z               "line": 1051
2026-06-15T09:27:05.1168832Z             },
2026-06-15T09:27:05.1168928Z             {
2026-06-15T09:27:05.1169162Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T09:27:05.1169262Z               "line": 1121
2026-06-15T09:27:05.1169362Z             },
2026-06-15T09:27:05.1169462Z             {
2026-06-15T09:27:05.1169610Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T09:27:05.1169719Z               "line": 1182
2026-06-15T09:27:05.1169825Z             },
2026-06-15T09:27:05.1169925Z             {
2026-06-15T09:27:05.1170077Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T09:27:05.1170179Z               "line": 1238
2026-06-15T09:27:05.1170277Z             },
2026-06-15T09:27:05.1170382Z             {
2026-06-15T09:27:05.1170531Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T09:27:05.1170640Z               "line": 1457
2026-06-15T09:27:05.1170740Z             }
2026-06-15T09:27:05.1170841Z           ]
2026-06-15T09:27:05.1170945Z         }
2026-06-15T09:27:05.1171036Z       }
2026-06-15T09:27:05.1171137Z     },
2026-06-15T09:27:05.1171236Z     {
2026-06-15T09:27:05.1171349Z       "id": "REQ-PAIR-2",
2026-06-15T09:27:05.1171512Z       "title": "Local trust store with TOFU + warn-on-change",
2026-06-15T09:27:05.1171626Z       "requiredStages": [],
2026-06-15T09:27:05.1171731Z       "stages": {
2026-06-15T09:27:05.1171827Z         "doc": {
2026-06-15T09:27:05.1171945Z           "complete": false,
2026-06-15T09:27:05.1172046Z           "evidence": []
2026-06-15T09:27:05.1172146Z         },
2026-06-15T09:27:05.1172241Z         "impl": {
2026-06-15T09:27:05.1172356Z           "complete": false,
2026-06-15T09:27:05.1172470Z           "evidence": []
2026-06-15T09:27:05.1172675Z         },
2026-06-15T09:27:05.1172771Z         "int": {
2026-06-15T09:27:05.1172885Z           "complete": false,
2026-06-15T09:27:05.1172995Z           "evidence": []
2026-06-15T09:27:05.1173086Z         },
2026-06-15T09:27:05.1173190Z         "unit": {
2026-06-15T09:27:05.1173305Z           "complete": false,
2026-06-15T09:27:05.1173406Z           "evidence": []
2026-06-15T09:27:05.1173509Z         }
2026-06-15T09:27:05.1173609Z       }
2026-06-15T09:27:05.1173704Z     },
2026-06-15T09:27:05.1173807Z     {
2026-06-15T09:27:05.1173925Z       "id": "REQ-PAIR-3",
2026-06-15T09:27:05.1174103Z       "title": "Fetch current pairing code from any paired node",
2026-06-15T09:27:05.1174312Z       "requiredStages": [
2026-06-15T09:27:05.1174417Z         "impl",
2026-06-15T09:27:05.1174517Z         "unit"
2026-06-15T09:27:05.1174612Z       ],
2026-06-15T09:27:05.1174713Z       "stages": {
2026-06-15T09:27:05.1174812Z         "doc": {
2026-06-15T09:27:05.1174917Z           "complete": false,
2026-06-15T09:27:05.1175018Z           "evidence": []
2026-06-15T09:27:05.1175123Z         },
2026-06-15T09:27:05.1175223Z         "impl": {
2026-06-15T09:27:05.1175338Z           "complete": true,
2026-06-15T09:27:05.1175442Z           "evidence": [
2026-06-15T09:27:05.1175537Z             {
2026-06-15T09:27:05.1175676Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1175776Z               "line": 2819
2026-06-15T09:27:05.1175876Z             },
2026-06-15T09:27:05.1175972Z             {
2026-06-15T09:27:05.1176105Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1176206Z               "line": 2888
2026-06-15T09:27:05.1176311Z             },
2026-06-15T09:27:05.1176409Z             {
2026-06-15T09:27:05.1176533Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1176642Z               "line": 3269
2026-06-15T09:27:05.1176740Z             },
2026-06-15T09:27:05.1176850Z             {
2026-06-15T09:27:05.1176974Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1177083Z               "line": 4514
2026-06-15T09:27:05.1177184Z             }
2026-06-15T09:27:05.1177280Z           ]
2026-06-15T09:27:05.1177374Z         },
2026-06-15T09:27:05.1177474Z         "int": {
2026-06-15T09:27:05.1177594Z           "complete": false,
2026-06-15T09:27:05.1177694Z           "evidence": []
2026-06-15T09:27:05.1177789Z         },
2026-06-15T09:27:05.1177895Z         "unit": {
2026-06-15T09:27:05.1178004Z           "complete": true,
2026-06-15T09:27:05.1178109Z           "evidence": [
2026-06-15T09:27:05.1178210Z             {
2026-06-15T09:27:05.1178328Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1178448Z               "line": 8224
2026-06-15T09:27:05.1178544Z             },
2026-06-15T09:27:05.1178642Z             {
2026-06-15T09:27:05.1178768Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1178882Z               "line": 8439
2026-06-15T09:27:05.1179056Z             },
2026-06-15T09:27:05.1179157Z             {
2026-06-15T09:27:05.1179283Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1179387Z               "line": 9038
2026-06-15T09:27:05.1179489Z             },
2026-06-15T09:27:05.1179584Z             {
2026-06-15T09:27:05.1179707Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1179809Z               "line": 9057
2026-06-15T09:27:05.1179908Z             },
2026-06-15T09:27:05.1179998Z             {
2026-06-15T09:27:05.1180119Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1180232Z               "line": 9081
2026-06-15T09:27:05.1180337Z             },
2026-06-15T09:27:05.1180438Z             {
2026-06-15T09:27:05.1180566Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1180680Z               "line": 9100
2026-06-15T09:27:05.1180777Z             },
2026-06-15T09:27:05.1180876Z             {
2026-06-15T09:27:05.1181005Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1181105Z               "line": 9113
2026-06-15T09:27:05.1181325Z             },
2026-06-15T09:27:05.1181425Z             {
2026-06-15T09:27:05.1181553Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1181654Z               "line": 9122
2026-06-15T09:27:05.1181758Z             }
2026-06-15T09:27:05.1181862Z           ]
2026-06-15T09:27:05.1181967Z         }
2026-06-15T09:27:05.1182068Z       }
2026-06-15T09:27:05.1182162Z     },
2026-06-15T09:27:05.1182267Z     {
2026-06-15T09:27:05.1182377Z       "id": "REQ-PAIR-4",
2026-06-15T09:27:05.1182529Z       "title": "Subnet naming on first pairing",
2026-06-15T09:27:05.1182645Z       "requiredStages": [
2026-06-15T09:27:05.1182744Z         "impl",
2026-06-15T09:27:05.1182944Z         "unit"
2026-06-15T09:27:05.1183045Z       ],
2026-06-15T09:27:05.1183149Z       "stages": {
2026-06-15T09:27:05.1183245Z         "doc": {
2026-06-15T09:27:05.1183364Z           "complete": false,
2026-06-15T09:27:05.1183469Z           "evidence": []
2026-06-15T09:27:05.1183570Z         },
2026-06-15T09:27:05.1183689Z         "impl": {
2026-06-15T09:27:05.1183798Z           "complete": true,
2026-06-15T09:27:05.1183913Z           "evidence": [
2026-06-15T09:27:05.1184013Z             {
2026-06-15T09:27:05.1184159Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T09:27:05.1184260Z               "line": 174
2026-06-15T09:27:05.1184358Z             }
2026-06-15T09:27:05.1184462Z           ]
2026-06-15T09:27:05.1184557Z         },
2026-06-15T09:27:05.1184653Z         "int": {
2026-06-15T09:27:05.1184767Z           "complete": false,
2026-06-15T09:27:05.1184877Z           "evidence": []
2026-06-15T09:27:05.1184973Z         },
2026-06-15T09:27:05.1185067Z         "unit": {
2026-06-15T09:27:05.1185187Z           "complete": true,
2026-06-15T09:27:05.1185292Z           "evidence": [
2026-06-15T09:27:05.1185396Z             {
2026-06-15T09:27:05.1185554Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T09:27:05.1185659Z               "line": 1294
2026-06-15T09:27:05.1185763Z             }
2026-06-15T09:27:05.1185869Z           ]
2026-06-15T09:27:05.1185969Z         }
2026-06-15T09:27:05.1186068Z       }
2026-06-15T09:27:05.1186170Z     },
2026-06-15T09:27:05.1186269Z     {
2026-06-15T09:27:05.1186388Z       "id": "REQ-PAIR-5",
2026-06-15T09:27:05.1186737Z       "title": "Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing",
2026-06-15T09:27:05.1186847Z       "requiredStages": [
2026-06-15T09:27:05.1186946Z         "impl",
2026-06-15T09:27:05.1187050Z         "unit",
2026-06-15T09:27:05.1187145Z         "int"
2026-06-15T09:27:05.1187244Z       ],
2026-06-15T09:27:05.1187352Z       "stages": {
2026-06-15T09:27:05.1187467Z         "doc": {
2026-06-15T09:27:05.1187578Z           "complete": false,
2026-06-15T09:27:05.1187686Z           "evidence": []
2026-06-15T09:27:05.1187788Z         },
2026-06-15T09:27:05.1187888Z         "impl": {
2026-06-15T09:27:05.1187996Z           "complete": true,
2026-06-15T09:27:05.1188097Z           "evidence": [
2026-06-15T09:27:05.1188202Z             {
2026-06-15T09:27:05.1188354Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T09:27:05.1188455Z               "line": 44
2026-06-15T09:27:05.1188550Z             },
2026-06-15T09:27:05.1188655Z             {
2026-06-15T09:27:05.1188799Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T09:27:05.1188903Z               "line": 96
2026-06-15T09:27:05.1189080Z             },
2026-06-15T09:27:05.1189179Z             {
2026-06-15T09:27:05.1189333Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T09:27:05.1189433Z               "line": 107
2026-06-15T09:27:05.1189540Z             },
2026-06-15T09:27:05.1189640Z             {
2026-06-15T09:27:05.1189788Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T09:27:05.1189895Z               "line": 124
2026-06-15T09:27:05.1189996Z             },
2026-06-15T09:27:05.1190097Z             {
2026-06-15T09:27:05.1190244Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T09:27:05.1190445Z               "line": 155
2026-06-15T09:27:05.1190549Z             },
2026-06-15T09:27:05.1190645Z             {
2026-06-15T09:27:05.1190797Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T09:27:05.1190897Z               "line": 195
2026-06-15T09:27:05.1191003Z             },
2026-06-15T09:27:05.1191102Z             {
2026-06-15T09:27:05.1191255Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T09:27:05.1191365Z               "line": 251
2026-06-15T09:27:05.1191464Z             },
2026-06-15T09:27:05.1191570Z             {
2026-06-15T09:27:05.1191827Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T09:27:05.1191943Z               "line": 33
2026-06-15T09:27:05.1192041Z             },
2026-06-15T09:27:05.1192142Z             {
2026-06-15T09:27:05.1192305Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T09:27:05.1192408Z               "line": 45
2026-06-15T09:27:05.1192502Z             },
2026-06-15T09:27:05.1192604Z             {
2026-06-15T09:27:05.1192770Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T09:27:05.1192875Z               "line": 59
2026-06-15T09:27:05.1192975Z             },
2026-06-15T09:27:05.1193070Z             {
2026-06-15T09:27:05.1193224Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T09:27:05.1193333Z               "line": 376
2026-06-15T09:27:05.1193428Z             }
2026-06-15T09:27:05.1193534Z           ]
2026-06-15T09:27:05.1193633Z         },
2026-06-15T09:27:05.1193738Z         "int": {
2026-06-15T09:27:05.1193858Z           "complete": true,
2026-06-15T09:27:05.1193957Z           "evidence": [
2026-06-15T09:27:05.1194057Z             {
2026-06-15T09:27:05.1194207Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:27:05.1194315Z               "line": 793
2026-06-15T09:27:05.1194415Z             },
2026-06-15T09:27:05.1194521Z             {
2026-06-15T09:27:05.1194672Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T09:27:05.1194776Z               "line": 342
2026-06-15T09:27:05.1194876Z             }
2026-06-15T09:27:05.1194975Z           ]
2026-06-15T09:27:05.1195074Z         },
2026-06-15T09:27:05.1195175Z         "unit": {
2026-06-15T09:27:05.1195294Z           "complete": true,
2026-06-15T09:27:05.1195408Z           "evidence": [
2026-06-15T09:27:05.1195504Z             {
2026-06-15T09:27:05.1195661Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T09:27:05.1195762Z               "line": 293
2026-06-15T09:27:05.1195876Z             },
2026-06-15T09:27:05.1195980Z             {
2026-06-15T09:27:05.1196129Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T09:27:05.1196238Z               "line": 304
2026-06-15T09:27:05.1196333Z             },
2026-06-15T09:27:05.1196434Z             {
2026-06-15T09:27:05.1196581Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T09:27:05.1196701Z               "line": 406
2026-06-15T09:27:05.1196810Z             },
2026-06-15T09:27:05.1196915Z             {
2026-06-15T09:27:05.1197083Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T09:27:05.1197182Z               "line": 72
2026-06-15T09:27:05.1197282Z             },
2026-06-15T09:27:05.1197384Z             {
2026-06-15T09:27:05.1197553Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T09:27:05.1197662Z               "line": 82
2026-06-15T09:27:05.1197767Z             },
2026-06-15T09:27:05.1197861Z             {
2026-06-15T09:27:05.1198037Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T09:27:05.1198152Z               "line": 100
2026-06-15T09:27:05.1198251Z             },
2026-06-15T09:27:05.1198352Z             {
2026-06-15T09:27:05.1198514Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T09:27:05.1198691Z               "line": 110
2026-06-15T09:27:05.1198791Z             },
2026-06-15T09:27:05.1198890Z             {
2026-06-15T09:27:05.1199139Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T09:27:05.1199244Z               "line": 125
2026-06-15T09:27:05.1199344Z             },
2026-06-15T09:27:05.1199443Z             {
2026-06-15T09:27:05.1199588Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T09:27:05.1199692Z               "line": 1044
2026-06-15T09:27:05.1199792Z             },
2026-06-15T09:27:05.1199888Z             {
2026-06-15T09:27:05.1200035Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T09:27:05.1200239Z               "line": 1110
2026-06-15T09:27:05.1200338Z             },
2026-06-15T09:27:05.1200437Z             {
2026-06-15T09:27:05.1200599Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T09:27:05.1200700Z               "line": 1357
2026-06-15T09:27:05.1200804Z             }
2026-06-15T09:27:05.1200910Z           ]
2026-06-15T09:27:05.1201010Z         }
2026-06-15T09:27:05.1201104Z       }
2026-06-15T09:27:05.1201205Z     },
2026-06-15T09:27:05.1201305Z     {
2026-06-15T09:27:05.1201418Z       "id": "REQ-PAIR-6",
2026-06-15T09:27:05.1201719Z       "title": "Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)",
2026-06-15T09:27:05.1201835Z       "requiredStages": [
2026-06-15T09:27:05.1201935Z         "impl",
2026-06-15T09:27:05.1202039Z         "unit"
2026-06-15T09:27:05.1202140Z       ],
2026-06-15T09:27:05.1202249Z       "stages": {
2026-06-15T09:27:05.1202349Z         "doc": {
2026-06-15T09:27:05.1202470Z           "complete": false,
2026-06-15T09:27:05.1202574Z           "evidence": []
2026-06-15T09:27:05.1202669Z         },
2026-06-15T09:27:05.1202770Z         "impl": {
2026-06-15T09:27:05.1202884Z           "complete": true,
2026-06-15T09:27:05.1202996Z           "evidence": [
2026-06-15T09:27:05.1203092Z             {
2026-06-15T09:27:05.1203241Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1203349Z               "line": 2888
2026-06-15T09:27:05.1203445Z             },
2026-06-15T09:27:05.1203545Z             {
2026-06-15T09:27:05.1203668Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1203779Z               "line": 3269
2026-06-15T09:27:05.1203879Z             },
2026-06-15T09:27:05.1203978Z             {
2026-06-15T09:27:05.1204118Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:27:05.1204222Z               "line": 18
2026-06-15T09:27:05.1204332Z             },
2026-06-15T09:27:05.1204423Z             {
2026-06-15T09:27:05.1204570Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:27:05.1204670Z               "line": 49
2026-06-15T09:27:05.1204776Z             },
2026-06-15T09:27:05.1204870Z             {
2026-06-15T09:27:05.1205004Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:27:05.1205110Z               "line": 318
2026-06-15T09:27:05.1205218Z             }
2026-06-15T09:27:05.1205312Z           ]
2026-06-15T09:27:05.1205413Z         },
2026-06-15T09:27:05.1205515Z         "int": {
2026-06-15T09:27:05.1205629Z           "complete": false,
2026-06-15T09:27:05.1205730Z           "evidence": []
2026-06-15T09:27:05.1205840Z         },
2026-06-15T09:27:05.1205934Z         "unit": {
2026-06-15T09:27:05.1206050Z           "complete": true,
2026-06-15T09:27:05.1206154Z           "evidence": [
2026-06-15T09:27:05.1206254Z             {
2026-06-15T09:27:05.1206384Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1206492Z               "line": 9135
2026-06-15T09:27:05.1206598Z             },
2026-06-15T09:27:05.1206699Z             {
2026-06-15T09:27:05.1206817Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1206927Z               "line": 9152
2026-06-15T09:27:05.1207032Z             },
2026-06-15T09:27:05.1207132Z             {
2026-06-15T09:27:05.1207257Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:27:05.1207466Z               "line": 383
2026-06-15T09:27:05.1207567Z             },
2026-06-15T09:27:05.1207667Z             {
2026-06-15T09:27:05.1207785Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:27:05.1207887Z               "line": 392
2026-06-15T09:27:05.1207982Z             }
2026-06-15T09:27:05.1208085Z           ]
2026-06-15T09:27:05.1208184Z         }
2026-06-15T09:27:05.1208280Z       }
2026-06-15T09:27:05.1208383Z     },
2026-06-15T09:27:05.1208482Z     {
2026-06-15T09:27:05.1208598Z       "id": "REQ-PAIR-7",
2026-06-15T09:27:05.1208783Z       "title": "Subnet icon (inline image metadata, GUI-only consumer)",
2026-06-15T09:27:05.1209050Z       "requiredStages": [],
2026-06-15T09:27:05.1209155Z       "stages": {
2026-06-15T09:27:05.1209256Z         "doc": {
2026-06-15T09:27:05.1209374Z           "complete": false,
2026-06-15T09:27:05.1209485Z           "evidence": []
2026-06-15T09:27:05.1209585Z         },
2026-06-15T09:27:05.1209689Z         "impl": {
2026-06-15T09:27:05.1209809Z           "complete": false,
2026-06-15T09:27:05.1212457Z           "evidence": []
2026-06-15T09:27:05.1212571Z         },
2026-06-15T09:27:05.1212676Z         "int": {
2026-06-15T09:27:05.1212795Z           "complete": false,
2026-06-15T09:27:05.1212910Z           "evidence": []
2026-06-15T09:27:05.1213010Z         },
2026-06-15T09:27:05.1213110Z         "unit": {
2026-06-15T09:27:05.1213229Z           "complete": false,
2026-06-15T09:27:05.1213340Z           "evidence": []
2026-06-15T09:27:05.1213439Z         }
2026-06-15T09:27:05.1213537Z       }
2026-06-15T09:27:05.1213642Z     },
2026-06-15T09:27:05.1213739Z     {
2026-06-15T09:27:05.1213866Z       "id": "REQ-PAIR-8",
2026-06-15T09:27:05.1215322Z       "title": "NTP TOTP offset: the pairing ceremony queries NTP at ceremony time (both sides) and applies the derived offset to the TOTP calculation in-process only; system-clock fallback when NTP is unreachable (offline LAN pairing unaffected — NTP failure never blocks a pairing that succeeds today); never sets the OS clock; no background sync loop (M8 decision 18; field trigger: enlyzeam clock >1 min off exceeds the ±1 window)",
2026-06-15T09:27:05.1215444Z       "requiredStages": [
2026-06-15T09:27:05.1215545Z         "impl",
2026-06-15T09:27:05.1215642Z         "unit"
2026-06-15T09:27:05.1215744Z       ],
2026-06-15T09:27:05.1215844Z       "stages": {
2026-06-15T09:27:05.1215949Z         "doc": {
2026-06-15T09:27:05.1216066Z           "complete": false,
2026-06-15T09:27:05.1216175Z           "evidence": []
2026-06-15T09:27:05.1216276Z         },
2026-06-15T09:27:05.1216381Z         "impl": {
2026-06-15T09:27:05.1216481Z           "complete": true,
2026-06-15T09:27:05.1216601Z           "evidence": [
2026-06-15T09:27:05.1216692Z             {
2026-06-15T09:27:05.1216853Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T09:27:05.1216958Z               "line": 577
2026-06-15T09:27:05.1217058Z             },
2026-06-15T09:27:05.1217158Z             {
2026-06-15T09:27:05.1217320Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T09:27:05.1217429Z               "line": 22
2026-06-15T09:27:05.1217526Z             },
2026-06-15T09:27:05.1217620Z             {
2026-06-15T09:27:05.1217764Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T09:27:05.1217870Z               "line": 76
2026-06-15T09:27:05.1217968Z             },
2026-06-15T09:27:05.1218064Z             {
2026-06-15T09:27:05.1218208Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T09:27:05.1218311Z               "line": 127
2026-06-15T09:27:05.1218412Z             }
2026-06-15T09:27:05.1218509Z           ]
2026-06-15T09:27:05.1218616Z         },
2026-06-15T09:27:05.1218720Z         "int": {
2026-06-15T09:27:05.1218831Z           "complete": false,
2026-06-15T09:27:05.1219033Z           "evidence": []
2026-06-15T09:27:05.1219129Z         },
2026-06-15T09:27:05.1219230Z         "unit": {
2026-06-15T09:27:05.1219334Z           "complete": true,
2026-06-15T09:27:05.1219582Z           "evidence": [
2026-06-15T09:27:05.1219681Z             {
2026-06-15T09:27:05.1219835Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T09:27:05.1219948Z               "line": 183
2026-06-15T09:27:05.1220045Z             },
2026-06-15T09:27:05.1220140Z             {
2026-06-15T09:27:05.1220287Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T09:27:05.1220398Z               "line": 195
2026-06-15T09:27:05.1220497Z             },
2026-06-15T09:27:05.1220597Z             {
2026-06-15T09:27:05.1220737Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T09:27:05.1220946Z               "line": 211
2026-06-15T09:27:05.1221052Z             },
2026-06-15T09:27:05.1221146Z             {
2026-06-15T09:27:05.1221302Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T09:27:05.1221398Z               "line": 227
2026-06-15T09:27:05.1221496Z             }
2026-06-15T09:27:05.1221604Z           ]
2026-06-15T09:27:05.1221696Z         }
2026-06-15T09:27:05.1221787Z       }
2026-06-15T09:27:05.1221881Z     },
2026-06-15T09:27:05.1221986Z     {
2026-06-15T09:27:05.1222101Z       "id": "REQ-PRES-1",
2026-06-15T09:27:05.1223541Z       "title": "Presence resolution: the presence datum (last_active_node, last_active_endpoint, ts) gossiped subnet-wide via the agent-interaction heartbeat (rides registry distribution, visibility-gated) + one first-class most-recently-active resolution API consumed by notif first-fire, update-consent delivery, consent escalation, and shell wake resolution (M5 scope decision 1: resolution only — the PresenceChannel endpoint stays deferred)",
2026-06-15T09:27:05.1223661Z       "requiredStages": [
2026-06-15T09:27:05.1223774Z         "impl",
2026-06-15T09:27:05.1223871Z         "unit",
2026-06-15T09:27:05.1223971Z         "int"
2026-06-15T09:27:05.1224069Z       ],
2026-06-15T09:27:05.1224183Z       "stages": {
2026-06-15T09:27:05.1224274Z         "doc": {
2026-06-15T09:27:05.1224384Z           "complete": true,
2026-06-15T09:27:05.1224479Z           "evidence": [
2026-06-15T09:27:05.1224580Z             {
2026-06-15T09:27:05.1224713Z               "path": "docs/DEFERRED.md",
2026-06-15T09:27:05.1224812Z               "line": 11
2026-06-15T09:27:05.1224909Z             }
2026-06-15T09:27:05.1225009Z           ]
2026-06-15T09:27:05.1225108Z         },
2026-06-15T09:27:05.1225205Z         "impl": {
2026-06-15T09:27:05.1225323Z           "complete": true,
2026-06-15T09:27:05.1225437Z           "evidence": [
2026-06-15T09:27:05.1225529Z             {
2026-06-15T09:27:05.1225681Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T09:27:05.1225795Z               "line": 515
2026-06-15T09:27:05.1225892Z             },
2026-06-15T09:27:05.1225999Z             {
2026-06-15T09:27:05.1226144Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T09:27:05.1226249Z               "line": 567
2026-06-15T09:27:05.1226347Z             },
2026-06-15T09:27:05.1226457Z             {
2026-06-15T09:27:05.1226594Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:27:05.1226698Z               "line": 188
2026-06-15T09:27:05.1226794Z             },
2026-06-15T09:27:05.1226894Z             {
2026-06-15T09:27:05.1227036Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:27:05.1227136Z               "line": 214
2026-06-15T09:27:05.1227232Z             },
2026-06-15T09:27:05.1227331Z             {
2026-06-15T09:27:05.1227476Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T09:27:05.1227576Z               "line": 28
2026-06-15T09:27:05.1227675Z             },
2026-06-15T09:27:05.1227776Z             {
2026-06-15T09:27:05.1227924Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T09:27:05.1228028Z               "line": 105
2026-06-15T09:27:05.1228129Z             },
2026-06-15T09:27:05.1228229Z             {
2026-06-15T09:27:05.1228377Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T09:27:05.1228562Z               "line": 161
2026-06-15T09:27:05.1228658Z             },
2026-06-15T09:27:05.1228754Z             {
2026-06-15T09:27:05.1228891Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T09:27:05.1229064Z               "line": 180
2026-06-15T09:27:05.1229167Z             },
2026-06-15T09:27:05.1229267Z             {
2026-06-15T09:27:05.1229420Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:05.1229522Z               "line": 415
2026-06-15T09:27:05.1229621Z             },
2026-06-15T09:27:05.1229723Z             {
2026-06-15T09:27:05.1229860Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T09:27:05.1230076Z               "line": 289
2026-06-15T09:27:05.1230184Z             },
2026-06-15T09:27:05.1230280Z             {
2026-06-15T09:27:05.1230433Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T09:27:05.1230528Z               "line": 336
2026-06-15T09:27:05.1230629Z             },
2026-06-15T09:27:05.1230738Z             {
2026-06-15T09:27:05.1230886Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T09:27:05.1230992Z               "line": 362
2026-06-15T09:27:05.1231091Z             },
2026-06-15T09:27:05.1231186Z             {
2026-06-15T09:27:05.1231321Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.1231424Z               "line": 100
2026-06-15T09:27:05.1231525Z             }
2026-06-15T09:27:05.1231622Z           ]
2026-06-15T09:27:05.1231725Z         },
2026-06-15T09:27:05.1231828Z         "int": {
2026-06-15T09:27:05.1231943Z           "complete": true,
2026-06-15T09:27:05.1232046Z           "evidence": [
2026-06-15T09:27:05.1232150Z             {
2026-06-15T09:27:05.1232304Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T09:27:05.1232408Z               "line": 559
2026-06-15T09:27:05.1232508Z             },
2026-06-15T09:27:05.1232600Z             {
2026-06-15T09:27:05.1232737Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:27:05.1232837Z               "line": 678
2026-06-15T09:27:05.1232938Z             },
2026-06-15T09:27:05.1233038Z             {
2026-06-15T09:27:05.1233181Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:27:05.1233281Z               "line": 1071
2026-06-15T09:27:05.1233381Z             }
2026-06-15T09:27:05.1233481Z           ]
2026-06-15T09:27:05.1233577Z         },
2026-06-15T09:27:05.1233681Z         "unit": {
2026-06-15T09:27:05.1233796Z           "complete": true,
2026-06-15T09:27:05.1233901Z           "evidence": [
2026-06-15T09:27:05.1234001Z             {
2026-06-15T09:27:05.1234140Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:27:05.1234249Z               "line": 674
2026-06-15T09:27:05.1234344Z             },
2026-06-15T09:27:05.1234445Z             {
2026-06-15T09:27:05.1234587Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T09:27:05.1234686Z               "line": 238
2026-06-15T09:27:05.1234786Z             },
2026-06-15T09:27:05.1234888Z             {
2026-06-15T09:27:05.1235024Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T09:27:05.1235140Z               "line": 269
2026-06-15T09:27:05.1235240Z             },
2026-06-15T09:27:05.1235335Z             {
2026-06-15T09:27:05.1235479Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T09:27:05.1235588Z               "line": 305
2026-06-15T09:27:05.1235692Z             },
2026-06-15T09:27:05.1235789Z             {
2026-06-15T09:27:05.1235931Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T09:27:05.1236031Z               "line": 336
2026-06-15T09:27:05.1236127Z             },
2026-06-15T09:27:05.1236222Z             {
2026-06-15T09:27:05.1236385Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:05.1236490Z               "line": 1165
2026-06-15T09:27:05.1236594Z             },
2026-06-15T09:27:05.1236690Z             {
2026-06-15T09:27:05.1236946Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.1237055Z               "line": 1131
2026-06-15T09:27:05.1237159Z             }
2026-06-15T09:27:05.1237258Z           ]
2026-06-15T09:27:05.1237358Z         }
2026-06-15T09:27:05.1237464Z       }
2026-06-15T09:27:05.1237563Z     },
2026-06-15T09:27:05.1237668Z     {
2026-06-15T09:27:05.1237778Z       "id": "REQ-RC-1",
2026-06-15T09:27:05.1239965Z       "title": "`spt rc <id>` — user CLI attaching a local terminal to a broker-held PTY, reusing the cross-node attach machinery (attach.rs request_attach → send_attach_input pump, spt-net AttachRecord codec); local attach is the degenerate single-node case of the cross-node path (rides REQ-TERM-3 byte-stream streaming). Read-only `--view` (watch, no stdin forwarded). Clean detach that does NOT terminate the broker-held session (KNOWN-HAZARDS: PTY ownership stays with the broker; no termination on detach). Explicit detach keybind that cannot collide with harness passthrough input (legacy capsule used a ctrl-b prefix); documented. ConPTY DSR auto-answer in the attach reader (hazard 5.5).",
2026-06-15T09:27:05.1240211Z       "requiredStages": [
2026-06-15T09:27:05.1240307Z         "impl",
2026-06-15T09:27:05.1240407Z         "unit",
2026-06-15T09:27:05.1240506Z         "int"
2026-06-15T09:27:05.1240608Z       ],
2026-06-15T09:27:05.1240708Z       "stages": {
2026-06-15T09:27:05.1240802Z         "doc": {
2026-06-15T09:27:05.1240918Z           "complete": false,
2026-06-15T09:27:05.1241032Z           "evidence": []
2026-06-15T09:27:05.1241131Z         },
2026-06-15T09:27:05.1241232Z         "impl": {
2026-06-15T09:27:05.1241336Z           "complete": true,
2026-06-15T09:27:05.1241456Z           "evidence": [
2026-06-15T09:27:05.1241552Z             {
2026-06-15T09:27:05.1241708Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T09:27:05.1241814Z               "line": 895
2026-06-15T09:27:05.1241910Z             },
2026-06-15T09:27:05.1242003Z             {
2026-06-15T09:27:05.1242162Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:27:05.1242275Z               "line": 1168
2026-06-15T09:27:05.1242380Z             },
2026-06-15T09:27:05.1242479Z             {
2026-06-15T09:27:05.1242625Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T09:27:05.1242729Z               "line": 816
2026-06-15T09:27:05.1242826Z             },
2026-06-15T09:27:05.1242917Z             {
2026-06-15T09:27:05.1243058Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T09:27:05.1243169Z               "line": 850
2026-06-15T09:27:05.1243269Z             },
2026-06-15T09:27:05.1243364Z             {
2026-06-15T09:27:05.1243489Z               "path": "crates/spt/src/rc.rs",
2026-06-15T09:27:05.1243598Z               "line": 22
2026-06-15T09:27:05.1243697Z             },
2026-06-15T09:27:05.1243799Z             {
2026-06-15T09:27:05.1243917Z               "path": "crates/spt/src/rc.rs",
2026-06-15T09:27:05.1244017Z               "line": 181
2026-06-15T09:27:05.1244124Z             }
2026-06-15T09:27:05.1244223Z           ]
2026-06-15T09:27:05.1244318Z         },
2026-06-15T09:27:05.1244419Z         "int": {
2026-06-15T09:27:05.1244537Z           "complete": true,
2026-06-15T09:27:05.1244652Z           "evidence": [
2026-06-15T09:27:05.1244749Z             {
2026-06-15T09:27:05.1244895Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T09:27:05.1244991Z               "line": 252
2026-06-15T09:27:05.1245082Z             },
2026-06-15T09:27:05.1245180Z             {
2026-06-15T09:27:05.1245318Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T09:27:05.1245419Z               "line": 279
2026-06-15T09:27:05.1245518Z             },
2026-06-15T09:27:05.1245623Z             {
2026-06-15T09:27:05.1245767Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T09:27:05.1245876Z               "line": 404
2026-06-15T09:27:05.1245972Z             }
2026-06-15T09:27:05.1246067Z           ]
2026-06-15T09:27:05.1246282Z         },
2026-06-15T09:27:05.1246382Z         "unit": {
2026-06-15T09:27:05.1246491Z           "complete": true,
2026-06-15T09:27:05.1246591Z           "evidence": [
2026-06-15T09:27:05.1246697Z             {
2026-06-15T09:27:05.1246830Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T09:27:05.1246930Z               "line": 1098
2026-06-15T09:27:05.1247030Z             },
2026-06-15T09:27:05.1247130Z             {
2026-06-15T09:27:05.1247245Z               "path": "crates/spt/src/rc.rs",
2026-06-15T09:27:05.1247350Z               "line": 421
2026-06-15T09:27:05.1247449Z             },
2026-06-15T09:27:05.1247544Z             {
2026-06-15T09:27:05.1247756Z               "path": "crates/spt/src/rc.rs",
2026-06-15T09:27:05.1247865Z               "line": 450
2026-06-15T09:27:05.1247952Z             },
2026-06-15T09:27:05.1248048Z             {
2026-06-15T09:27:05.1248166Z               "path": "crates/spt/src/rc.rs",
2026-06-15T09:27:05.1248267Z               "line": 463
2026-06-15T09:27:05.1248372Z             }
2026-06-15T09:27:05.1248471Z           ]
2026-06-15T09:27:05.1248572Z         }
2026-06-15T09:27:05.1248672Z       }
2026-06-15T09:27:05.1248772Z     },
2026-06-15T09:27:05.1248868Z     {
2026-06-15T09:27:05.1249053Z       "id": "REQ-RCVIEW-1",
2026-06-15T09:27:05.1253711Z       "title": "Remote-attach controller/viewer model (CONTEXT.md:317): a session's broker OutputLog serves ONE interactive controller (input + EXCLUSIVE PTY resize; its viewport sets the size, sent on attach + every window change via crossterm Event::Resize) plus ANY NUMBER of read-only `--view` attachers (output-only, no input, no resize; client-side letterbox — center+pad when larger, clip+1-line indicator when smaller; only the local ctrl-b d detach chord). Attach intent is three-valued (`Viewer | Control | Take`, wire-default Control): Control to a FREE endpoint becomes controller, Control to a CONTROLLED endpoint is REFUSED with guidance (`--view`/`--take`) — never auto-viewer, never silent-displace. Wire adds (additive, N-1 skip-unknown): `Request.intent`, `Resize{rows,cols}` (controller-only), `Size{rows,cols}` (→viewer), `Displaced{by}` (→displaced controller). The brain-resume cursor (delivered_through, ADR-0018) tracks the CONTROLLER ONLY; viewers replay from their own from_seq and never move it. Dormancy keys on the controller ONLY: controller attach wakes / controller detach goes dormant (even with viewers present); viewer attach/detach is wake-neutral and may watch a dormant endpoint as-is. v1: viewing is gated identically to driving — a viewer runs the same access_check(Unsolicited) as a controller (watching reveals full session contents = a real disclosure); a lighter distinct watch-gate is deferred to cross-subnet/finer-consent (CONTEXT.md:317 'driving ≠ watching' = the future seam).",
2026-06-15T09:27:05.1253857Z       "requiredStages": [
2026-06-15T09:27:05.1253957Z         "doc",
2026-06-15T09:27:05.1254059Z         "impl",
2026-06-15T09:27:05.1254158Z         "unit",
2026-06-15T09:27:05.1254267Z         "int"
2026-06-15T09:27:05.1254364Z       ],
2026-06-15T09:27:05.1254463Z       "stages": {
2026-06-15T09:27:05.1254573Z         "doc": {
2026-06-15T09:27:05.1254684Z           "complete": true,
2026-06-15T09:27:05.1254788Z           "evidence": [
2026-06-15T09:27:05.1254893Z             {
2026-06-15T09:27:05.1255013Z               "path": "CONTEXT.md",
2026-06-15T09:27:05.1255111Z               "line": 320
2026-06-15T09:27:05.1255212Z             }
2026-06-15T09:27:05.1255318Z           ]
2026-06-15T09:27:05.1255416Z         },
2026-06-15T09:27:05.1255517Z         "impl": {
2026-06-15T09:27:05.1255623Z           "complete": true,
2026-06-15T09:27:05.1255740Z           "evidence": [
2026-06-15T09:27:05.1255840Z             {
2026-06-15T09:27:05.1255989Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-15T09:27:05.1256102Z               "line": 323
2026-06-15T09:27:05.1256193Z             },
2026-06-15T09:27:05.1256284Z             {
2026-06-15T09:27:05.1256426Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:27:05.1256632Z               "line": 430
2026-06-15T09:27:05.1256741Z             },
2026-06-15T09:27:05.1256837Z             {
2026-06-15T09:27:05.1256980Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:27:05.1257079Z               "line": 441
2026-06-15T09:27:05.1257176Z             },
2026-06-15T09:27:05.1257276Z             {
2026-06-15T09:27:05.1257414Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T09:27:05.1257529Z               "line": 41
2026-06-15T09:27:05.1257619Z             },
2026-06-15T09:27:05.1257714Z             {
2026-06-15T09:27:05.1257859Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T09:27:05.1258061Z               "line": 62
2026-06-15T09:27:05.1258176Z             },
2026-06-15T09:27:05.1258274Z             {
2026-06-15T09:27:05.1258416Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T09:27:05.1258522Z               "line": 255
2026-06-15T09:27:05.1258626Z             },
2026-06-15T09:27:05.1258721Z             {
2026-06-15T09:27:05.1258841Z               "path": "crates/spt/src/rc.rs",
2026-06-15T09:27:05.1259022Z               "line": 181
2026-06-15T09:27:05.1259118Z             }
2026-06-15T09:27:05.1259223Z           ]
2026-06-15T09:27:05.1259322Z         },
2026-06-15T09:27:05.1259418Z         "int": {
2026-06-15T09:27:05.1259533Z           "complete": true,
2026-06-15T09:27:05.1259637Z           "evidence": [
2026-06-15T09:27:05.1259737Z             {
2026-06-15T09:27:05.1259880Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T09:27:05.1259990Z               "line": 789
2026-06-15T09:27:05.1260101Z             },
2026-06-15T09:27:05.1260200Z             {
2026-06-15T09:27:05.1260338Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T09:27:05.1260439Z               "line": 829
2026-06-15T09:27:05.1260538Z             },
2026-06-15T09:27:05.1260638Z             {
2026-06-15T09:27:05.1260778Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T09:27:05.1260895Z               "line": 876
2026-06-15T09:27:05.1261000Z             },
2026-06-15T09:27:05.1261095Z             {
2026-06-15T09:27:05.1261240Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T09:27:05.1261346Z               "line": 988
2026-06-15T09:27:05.1261442Z             }
2026-06-15T09:27:05.1261541Z           ]
2026-06-15T09:27:05.1261641Z         },
2026-06-15T09:27:05.1261742Z         "unit": {
2026-06-15T09:27:05.1261860Z           "complete": true,
2026-06-15T09:27:05.1261965Z           "evidence": [
2026-06-15T09:27:05.1262071Z             {
2026-06-15T09:27:05.1262213Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T09:27:05.1262314Z               "line": 175
2026-06-15T09:27:05.1262409Z             },
2026-06-15T09:27:05.1262509Z             {
2026-06-15T09:27:05.1262658Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T09:27:05.1262762Z               "line": 195
2026-06-15T09:27:05.1262871Z             }
2026-06-15T09:27:05.1262968Z           ]
2026-06-15T09:27:05.1263063Z         }
2026-06-15T09:27:05.1263167Z       }
2026-06-15T09:27:05.1263264Z     },
2026-06-15T09:27:05.1263368Z     {
2026-06-15T09:27:05.1263481Z       "id": "REQ-REACH-1",
2026-06-15T09:27:05.1263667Z       "title": "Off-node remote-drive detection + file transfer",
2026-06-15T09:27:05.1263769Z       "requiredStages": [
2026-06-15T09:27:05.1263878Z         "impl",
2026-06-15T09:27:05.1263980Z         "unit",
2026-06-15T09:27:05.1264080Z         "int"
2026-06-15T09:27:05.1264179Z       ],
2026-06-15T09:27:05.1264276Z       "stages": {
2026-06-15T09:27:05.1264381Z         "doc": {
2026-06-15T09:27:05.1264494Z           "complete": false,
2026-06-15T09:27:05.1264609Z           "evidence": []
2026-06-15T09:27:05.1264709Z         },
2026-06-15T09:27:05.1264808Z         "impl": {
2026-06-15T09:27:05.1264929Z           "complete": true,
2026-06-15T09:27:05.1265038Z           "evidence": [
2026-06-15T09:27:05.1265229Z             {
2026-06-15T09:27:05.1265362Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:27:05.1265472Z               "line": 430
2026-06-15T09:27:05.1265568Z             },
2026-06-15T09:27:05.1265671Z             {
2026-06-15T09:27:05.1265806Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T09:27:05.1265902Z               "line": 76
2026-06-15T09:27:05.1266005Z             },
2026-06-15T09:27:05.1266102Z             {
2026-06-15T09:27:05.1266240Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T09:27:05.1266343Z               "line": 222
2026-06-15T09:27:05.1266443Z             },
2026-06-15T09:27:05.1266643Z             {
2026-06-15T09:27:05.1266777Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T09:27:05.1266887Z               "line": 422
2026-06-15T09:27:05.1266986Z             },
2026-06-15T09:27:05.1267092Z             {
2026-06-15T09:27:05.1267230Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T09:27:05.1267334Z               "line": 529
2026-06-15T09:27:05.1267440Z             },
2026-06-15T09:27:05.1267540Z             {
2026-06-15T09:27:05.1267683Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-15T09:27:05.1267784Z               "line": 39
2026-06-15T09:27:05.1267883Z             },
2026-06-15T09:27:05.1267988Z             {
2026-06-15T09:27:05.1268123Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T09:27:05.1268231Z               "line": 239
2026-06-15T09:27:05.1268327Z             },
2026-06-15T09:27:05.1268424Z             {
2026-06-15T09:27:05.1268560Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-15T09:27:05.1268678Z               "line": 88
2026-06-15T09:27:05.1268774Z             },
2026-06-15T09:27:05.1268876Z             {
2026-06-15T09:27:05.1269077Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-15T09:27:05.1269173Z               "line": 98
2026-06-15T09:27:05.1269277Z             },
2026-06-15T09:27:05.1269377Z             {
2026-06-15T09:27:05.1269520Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:27:05.1269624Z               "line": 229
2026-06-15T09:27:05.1269726Z             }
2026-06-15T09:27:05.1269826Z           ]
2026-06-15T09:27:05.1269925Z         },
2026-06-15T09:27:05.1270022Z         "int": {
2026-06-15T09:27:05.1270140Z           "complete": true,
2026-06-15T09:27:05.1270249Z           "evidence": [
2026-06-15T09:27:05.1270356Z             {
2026-06-15T09:27:05.1270507Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T09:27:05.1270613Z               "line": 415
2026-06-15T09:27:05.1270713Z             },
2026-06-15T09:27:05.1270822Z             {
2026-06-15T09:27:05.1270966Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T09:27:05.1271070Z               "line": 516
2026-06-15T09:27:05.1271170Z             },
2026-06-15T09:27:05.1271266Z             {
2026-06-15T09:27:05.1271408Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:27:05.1271521Z               "line": 904
2026-06-15T09:27:05.1271622Z             },
2026-06-15T09:27:05.1271720Z             {
2026-06-15T09:27:05.1271862Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:27:05.1271978Z               "line": 1199
2026-06-15T09:27:05.1272073Z             }
2026-06-15T09:27:05.1272172Z           ]
2026-06-15T09:27:05.1272273Z         },
2026-06-15T09:27:05.1272369Z         "unit": {
2026-06-15T09:27:05.1272482Z           "complete": true,
2026-06-15T09:27:05.1272588Z           "evidence": [
2026-06-15T09:27:05.1272688Z             {
2026-06-15T09:27:05.1272826Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T09:27:05.1272946Z               "line": 639
2026-06-15T09:27:05.1273041Z             },
2026-06-15T09:27:05.1273141Z             {
2026-06-15T09:27:05.1273280Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T09:27:05.1273379Z               "line": 660
2026-06-15T09:27:05.1273485Z             },
2026-06-15T09:27:05.1273684Z             {
2026-06-15T09:27:05.1273829Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T09:27:05.1273928Z               "line": 646
2026-06-15T09:27:05.1274027Z             },
2026-06-15T09:27:05.1274126Z             {
2026-06-15T09:27:05.1274269Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-15T09:27:05.1274381Z               "line": 93
2026-06-15T09:27:05.1274482Z             },
2026-06-15T09:27:05.1274588Z             {
2026-06-15T09:27:05.1274729Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-15T09:27:05.1274840Z               "line": 224
2026-06-15T09:27:05.1274945Z             },
2026-06-15T09:27:05.1275141Z             {
2026-06-15T09:27:05.1275284Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-15T09:27:05.1275383Z               "line": 96
2026-06-15T09:27:05.1275484Z             },
2026-06-15T09:27:05.1275583Z             {
2026-06-15T09:27:05.1275717Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-15T09:27:05.1275841Z               "line": 146
2026-06-15T09:27:05.1275942Z             },
2026-06-15T09:27:05.1276046Z             {
2026-06-15T09:27:05.1276184Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T09:27:05.1276294Z               "line": 529
2026-06-15T09:27:05.1276391Z             },
2026-06-15T09:27:05.1276495Z             {
2026-06-15T09:27:05.1276632Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-15T09:27:05.1276734Z               "line": 118
2026-06-15T09:27:05.1276833Z             },
2026-06-15T09:27:05.1276932Z             {
2026-06-15T09:27:05.1277075Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-15T09:27:05.1277195Z               "line": 148
2026-06-15T09:27:05.1277289Z             },
2026-06-15T09:27:05.1277390Z             {
2026-06-15T09:27:05.1277533Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:27:05.1277642Z               "line": 804
2026-06-15T09:27:05.1277734Z             }
2026-06-15T09:27:05.1277843Z           ]
2026-06-15T09:27:05.1277943Z         }
2026-06-15T09:27:05.1278039Z       }
2026-06-15T09:27:05.1278143Z     },
2026-06-15T09:27:05.1278238Z     {
2026-06-15T09:27:05.1278359Z       "id": "REQ-REACH-2",
2026-06-15T09:27:05.1278538Z       "title": "Remote command execution (deferred, consent-gated)",
2026-06-15T09:27:05.1278654Z       "requiredStages": [],
2026-06-15T09:27:05.1278758Z       "stages": {
2026-06-15T09:27:05.1278863Z         "doc": {
2026-06-15T09:27:05.1279045Z           "complete": false,
2026-06-15T09:27:05.1279148Z           "evidence": []
2026-06-15T09:27:05.1279248Z         },
2026-06-15T09:27:05.1279349Z         "impl": {
2026-06-15T09:27:05.1279470Z           "complete": false,
2026-06-15T09:27:05.1279585Z           "evidence": []
2026-06-15T09:27:05.1279680Z         },
2026-06-15T09:27:05.1279775Z         "int": {
2026-06-15T09:27:05.1279885Z           "complete": false,
2026-06-15T09:27:05.1280000Z           "evidence": []
2026-06-15T09:27:05.1280099Z         },
2026-06-15T09:27:05.1280204Z         "unit": {
2026-06-15T09:27:05.1280305Z           "complete": false,
2026-06-15T09:27:05.1280418Z           "evidence": []
2026-06-15T09:27:05.1280509Z         }
2026-06-15T09:27:05.1280606Z       }
2026-06-15T09:27:05.1280710Z     },
2026-06-15T09:27:05.1280805Z     {
2026-06-15T09:27:05.1280925Z       "id": "REQ-REL-1",
2026-06-15T09:27:05.1281339Z       "title": "spt-releases publish-target repo: README public face, licensing split, Pages docs at the permanent lapse-proof canonical URL (ADR-0014)",
2026-06-15T09:27:05.1281454Z       "requiredStages": [
2026-06-15T09:27:05.1281551Z         "doc",
2026-06-15T09:27:05.1281648Z         "impl"
2026-06-15T09:27:05.1281754Z       ],
2026-06-15T09:27:05.1281856Z       "stages": {
2026-06-15T09:27:05.1281949Z         "doc": {
2026-06-15T09:27:05.1282067Z           "complete": true,
2026-06-15T09:27:05.1282163Z           "evidence": [
2026-06-15T09:27:05.1282276Z             {
2026-06-15T09:27:05.1282528Z               "path": "docs/adr/0014-publish-target-repo-and-lapse-proof-canonical-url.md",
2026-06-15T09:27:05.1282766Z               "line": 3
2026-06-15T09:27:05.1282862Z             }
2026-06-15T09:27:05.1282962Z           ]
2026-06-15T09:27:05.1283061Z         },
2026-06-15T09:27:05.1283163Z         "impl": {
2026-06-15T09:27:05.1283281Z           "complete": true,
2026-06-15T09:27:05.1283391Z           "evidence": [
2026-06-15T09:27:05.1283478Z             {
2026-06-15T09:27:05.1283624Z               "path": ".github/workflows/docs-publish.yml",
2026-06-15T09:27:05.1283740Z               "line": 11
2026-06-15T09:27:05.1283835Z             },
2026-06-15T09:27:05.1283934Z             {
2026-06-15T09:27:05.1284169Z               "path": "crates/xtask/src/main.rs",
2026-06-15T09:27:05.1284273Z               "line": 265
2026-06-15T09:27:05.1284369Z             }
2026-06-15T09:27:05.1284460Z           ]
2026-06-15T09:27:05.1284568Z         },
2026-06-15T09:27:05.1284663Z         "int": {
2026-06-15T09:27:05.1284777Z           "complete": false,
2026-06-15T09:27:05.1284895Z           "evidence": []
2026-06-15T09:27:05.1284994Z         },
2026-06-15T09:27:05.1285095Z         "unit": {
2026-06-15T09:27:05.1285200Z           "complete": false,
2026-06-15T09:27:05.1285314Z           "evidence": []
2026-06-15T09:27:05.1285410Z         }
2026-06-15T09:27:05.1285501Z       }
2026-06-15T09:27:05.1285599Z     },
2026-06-15T09:27:05.1285696Z     {
2026-06-15T09:27:05.1285810Z       "id": "REQ-REL-2",
2026-06-15T09:27:05.1286336Z       "title": "Release asset set consumable by the self-updater: platform binaries, SHA256SUMS, SignedRelease metadata, manifest schema, mock-adapter zip; tag-triggered cross-repo pipeline",
2026-06-15T09:27:05.1286468Z       "requiredStages": [
2026-06-15T09:27:05.1286577Z         "impl",
2026-06-15T09:27:05.1286678Z         "int"
2026-06-15T09:27:05.1286778Z       ],
2026-06-15T09:27:05.1286878Z       "stages": {
2026-06-15T09:27:05.1286979Z         "doc": {
2026-06-15T09:27:05.1287078Z           "complete": true,
2026-06-15T09:27:05.1287193Z           "evidence": [
2026-06-15T09:27:05.1287294Z             {
2026-06-15T09:27:05.1287430Z               "path": "docs/RELEASE-RUNBOOK.md",
2026-06-15T09:27:05.1287525Z               "line": 6
2026-06-15T09:27:05.1287621Z             }
2026-06-15T09:27:05.1287727Z           ]
2026-06-15T09:27:05.1287820Z         },
2026-06-15T09:27:05.1287922Z         "impl": {
2026-06-15T09:27:05.1288036Z           "complete": true,
2026-06-15T09:27:05.1288140Z           "evidence": [
2026-06-15T09:27:05.1288237Z             {
2026-06-15T09:27:05.1288375Z               "path": ".github/workflows/release.yml",
2026-06-15T09:27:05.1288483Z               "line": 16
2026-06-15T09:27:05.1288580Z             },
2026-06-15T09:27:05.1288679Z             {
2026-06-15T09:27:05.1288822Z               "path": "crates/xtask/src/main.rs",
2026-06-15T09:27:05.1288919Z               "line": 352
2026-06-15T09:27:05.1289099Z             },
2026-06-15T09:27:05.1289196Z             {
2026-06-15T09:27:05.1289332Z               "path": "crates/xtask/src/main.rs",
2026-06-15T09:27:05.1289427Z               "line": 426
2026-06-15T09:27:05.1289525Z             },
2026-06-15T09:27:05.1289624Z             {
2026-06-15T09:27:05.1289747Z               "path": "crates/xtask/src/main.rs",
2026-06-15T09:27:05.1289861Z               "line": 588
2026-06-15T09:27:05.1289955Z             },
2026-06-15T09:27:05.1290059Z             {
2026-06-15T09:27:05.1290183Z               "path": "crates/xtask/src/main.rs",
2026-06-15T09:27:05.1290289Z               "line": 720
2026-06-15T09:27:05.1290387Z             }
2026-06-15T09:27:05.1290479Z           ]
2026-06-15T09:27:05.1290579Z         },
2026-06-15T09:27:05.1290683Z         "int": {
2026-06-15T09:27:05.1290798Z           "complete": true,
2026-06-15T09:27:05.1290898Z           "evidence": [
2026-06-15T09:27:05.1291002Z             {
2026-06-15T09:27:05.1291166Z               "path": "crates/spt/tests/release_verify_e2e.rs",
2026-06-15T09:27:05.1291266Z               "line": 13
2026-06-15T09:27:05.1291471Z             }
2026-06-15T09:27:05.1291565Z           ]
2026-06-15T09:27:05.1291670Z         },
2026-06-15T09:27:05.1291762Z         "unit": {
2026-06-15T09:27:05.1291875Z           "complete": false,
2026-06-15T09:27:05.1291985Z           "evidence": []
2026-06-15T09:27:05.1292081Z         }
2026-06-15T09:27:05.1292181Z       }
2026-06-15T09:27:05.1292271Z     },
2026-06-15T09:27:05.1292377Z     {
2026-06-15T09:27:05.1292477Z       "id": "REQ-REL-3",
2026-06-15T09:27:05.1292959Z       "title": "Two-key release-signing trust anchor: primary + offline never-used recovery, both pubkeys embedded in the binary's trusted set, manual local signing (ADR-0015)",
2026-06-15T09:27:05.1293179Z       "requiredStages": [
2026-06-15T09:27:05.1293279Z         "impl",
2026-06-15T09:27:05.1293380Z         "unit"
2026-06-15T09:27:05.1293475Z       ],
2026-06-15T09:27:05.1293574Z       "stages": {
2026-06-15T09:27:05.1293680Z         "doc": {
2026-06-15T09:27:05.1293794Z           "complete": false,
2026-06-15T09:27:05.1293898Z           "evidence": []
2026-06-15T09:27:05.1293994Z         },
2026-06-15T09:27:05.1294103Z         "impl": {
2026-06-15T09:27:05.1294208Z           "complete": true,
2026-06-15T09:27:05.1294319Z           "evidence": [
2026-06-15T09:27:05.1294418Z             {
2026-06-15T09:27:05.1294562Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:27:05.1294672Z               "line": 237
2026-06-15T09:27:05.1294775Z             },
2026-06-15T09:27:05.1294872Z             {
2026-06-15T09:27:05.1295011Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:27:05.1295119Z               "line": 289
2026-06-15T09:27:05.1295227Z             },
2026-06-15T09:27:05.1295324Z             {
2026-06-15T09:27:05.1295459Z               "path": "crates/xtask/src/main.rs",
2026-06-15T09:27:05.1295569Z               "line": 329
2026-06-15T09:27:05.1295670Z             },
2026-06-15T09:27:05.1295769Z             {
2026-06-15T09:27:05.1295903Z               "path": "crates/xtask/src/main.rs",
2026-06-15T09:27:05.1298625Z               "line": 353
2026-06-15T09:27:05.1298743Z             },
2026-06-15T09:27:05.1298844Z             {
2026-06-15T09:27:05.1299068Z               "path": "crates/xtask/src/main.rs",
2026-06-15T09:27:05.1299183Z               "line": 394
2026-06-15T09:27:05.1299283Z             }
2026-06-15T09:27:05.1299382Z           ]
2026-06-15T09:27:05.1299484Z         },
2026-06-15T09:27:05.1299583Z         "int": {
2026-06-15T09:27:05.1299707Z           "complete": false,
2026-06-15T09:27:05.1299803Z           "evidence": []
2026-06-15T09:27:05.1299902Z         },
2026-06-15T09:27:05.1300002Z         "unit": {
2026-06-15T09:27:05.1300137Z           "complete": true,
2026-06-15T09:27:05.1300250Z           "evidence": [
2026-06-15T09:27:05.1300349Z             {
2026-06-15T09:27:05.1300506Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:27:05.1300619Z               "line": 992
2026-06-15T09:27:05.1300719Z             },
2026-06-15T09:27:05.1300825Z             {
2026-06-15T09:27:05.1300967Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:27:05.1301072Z               "line": 1051
2026-06-15T09:27:05.1301168Z             }
2026-06-15T09:27:05.1301272Z           ]
2026-06-15T09:27:05.1301368Z         }
2026-06-15T09:27:05.1301468Z       }
2026-06-15T09:27:05.1301563Z     },
2026-06-15T09:27:05.1301664Z     {
2026-06-15T09:27:05.1301778Z       "id": "REQ-RUN-PICKER",
2026-06-15T09:27:05.1306753Z       "title": "Interactive `spt endpoint run` picker (ratatui TUI): bare `spt endpoint run` (no --adapter/--id) enters an in-process picker (flags-present = the REQ-HOST-RUN-1 non-interactive path, untouched). Layer 1 picks kind (Create new | Pick existing). Create-new: choose a registered kind=\"harness\" adapter with its shipped+local profiles tree-nested (registry::registered / manifest.profiles / local_profile_names) → enter a charset-validated id → start. Pick-existing: category select (left/right) over [<cwd-project> | Local node | Subnet], endpoints grouped + alphabetically sorted per category, a status square per endpoint (online green ■ / offline gray ▢ — the blue \"attached\" tri-state + Kick are DEFERRED to a broker attach-presence slice, M12-W2-RULING Q1), type-to-filter (`/`, nucleo-matcher), a pinned keybind legend, and a right-half two-pane description (harness adapter:profile · best-effort project history newest→oldest from the contextstore p-<project> branches, empty-if-none · `spt endpoint description`). Confirm layer offers status-dependent options — Attach/Start/View (rc pump / cmd_endpoint_run) · Instantiate-locally (remote) · Change-harness-adapter (offline) · Fork (cmd_fork) · Resume-from-history (offline+LOCAL only; enumerate spt_store::sessions::last_k, titles `<project> @ <ts> (…id5)`, feed session_id → cmd_endpoint_run --resume). A single action enum is the source of truth so a future tap-mode (phone PTY) layers on without re-coupling to keybinds. EVERY terminal action routes through cmd_endpoint_run / existing CLI fns — no second bringup path.",
2026-06-15T09:27:05.1307146Z       "requiredStages": [
2026-06-15T09:27:05.1307240Z         "doc",
2026-06-15T09:27:05.1307340Z         "impl",
2026-06-15T09:27:05.1307441Z         "unit"
2026-06-15T09:27:05.1307536Z       ],
2026-06-15T09:27:05.1307640Z       "stages": {
2026-06-15T09:27:05.1307737Z         "doc": {
2026-06-15T09:27:05.1307855Z           "complete": true,
2026-06-15T09:27:05.1307955Z           "evidence": [
2026-06-15T09:27:05.1308052Z             {
2026-06-15T09:27:05.1308175Z               "path": "CONTEXT.md",
2026-06-15T09:27:05.1308275Z               "line": 324
2026-06-15T09:27:05.1308376Z             }
2026-06-15T09:27:05.1308476Z           ]
2026-06-15T09:27:05.1308574Z         },
2026-06-15T09:27:05.1308674Z         "impl": {
2026-06-15T09:27:05.1308785Z           "complete": true,
2026-06-15T09:27:05.1308889Z           "evidence": [
2026-06-15T09:27:05.1309056Z             {
2026-06-15T09:27:05.1309190Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1309298Z               "line": 861
2026-06-15T09:27:05.1309404Z             },
2026-06-15T09:27:05.1309500Z             {
2026-06-15T09:27:05.1309623Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1309724Z               "line": 871
2026-06-15T09:27:05.1309824Z             },
2026-06-15T09:27:05.1309923Z             {
2026-06-15T09:27:05.1310062Z               "path": "crates/spt/src/picker/data.rs",
2026-06-15T09:27:05.1310172Z               "line": 9
2026-06-15T09:27:05.1310267Z             },
2026-06-15T09:27:05.1310368Z             {
2026-06-15T09:27:05.1310495Z               "path": "crates/spt/src/picker/data.rs",
2026-06-15T09:27:05.1310606Z               "line": 67
2026-06-15T09:27:05.1310697Z             },
2026-06-15T09:27:05.1310796Z             {
2026-06-15T09:27:05.1310933Z               "path": "crates/spt/src/picker/mod.rs",
2026-06-15T09:27:05.1311038Z               "line": 16
2026-06-15T09:27:05.1311137Z             },
2026-06-15T09:27:05.1311246Z             {
2026-06-15T09:27:05.1311380Z               "path": "crates/spt/src/picker/mod.rs",
2026-06-15T09:27:05.1311484Z               "line": 249
2026-06-15T09:27:05.1311584Z             },
2026-06-15T09:27:05.1311681Z             {
2026-06-15T09:27:05.1311822Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T09:27:05.1311929Z               "line": 11
2026-06-15T09:27:05.1312019Z             },
2026-06-15T09:27:05.1312114Z             {
2026-06-15T09:27:05.1312253Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T09:27:05.1312357Z               "line": 85
2026-06-15T09:27:05.1312457Z             },
2026-06-15T09:27:05.1312558Z             {
2026-06-15T09:27:05.1312695Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T09:27:05.1312805Z               "line": 452
2026-06-15T09:27:05.1312906Z             },
2026-06-15T09:27:05.1313006Z             {
2026-06-15T09:27:05.1313144Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T09:27:05.1313362Z               "line": 533
2026-06-15T09:27:05.1313464Z             },
2026-06-15T09:27:05.1313564Z             {
2026-06-15T09:27:05.1313705Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T09:27:05.1313810Z               "line": 586
2026-06-15T09:27:05.1313910Z             },
2026-06-15T09:27:05.1314013Z             {
2026-06-15T09:27:05.1314151Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T09:27:05.1314247Z               "line": 8
2026-06-15T09:27:05.1314351Z             }
2026-06-15T09:27:05.1314441Z           ]
2026-06-15T09:27:05.1314538Z         },
2026-06-15T09:27:05.1314638Z         "int": {
2026-06-15T09:27:05.1314853Z           "complete": false,
2026-06-15T09:27:05.1314962Z           "evidence": []
2026-06-15T09:27:05.1315057Z         },
2026-06-15T09:27:05.1315163Z         "unit": {
2026-06-15T09:27:05.1315277Z           "complete": true,
2026-06-15T09:27:05.1315372Z           "evidence": [
2026-06-15T09:27:05.1315468Z             {
2026-06-15T09:27:05.1315595Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1315706Z               "line": 6138
2026-06-15T09:27:05.1315807Z             },
2026-06-15T09:27:05.1315910Z             {
2026-06-15T09:27:05.1316035Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1316141Z               "line": 6149
2026-06-15T09:27:05.1316244Z             },
2026-06-15T09:27:05.1316347Z             {
2026-06-15T09:27:05.1316482Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T09:27:05.1316579Z               "line": 737
2026-06-15T09:27:05.1316684Z             },
2026-06-15T09:27:05.1316781Z             {
2026-06-15T09:27:05.1316922Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T09:27:05.1317033Z               "line": 744
2026-06-15T09:27:05.1317119Z             },
2026-06-15T09:27:05.1317214Z             {
2026-06-15T09:27:05.1317357Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T09:27:05.1317471Z               "line": 761
2026-06-15T09:27:05.1317580Z             },
2026-06-15T09:27:05.1317682Z             {
2026-06-15T09:27:05.1317819Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T09:27:05.1317919Z               "line": 781
2026-06-15T09:27:05.1318026Z             },
2026-06-15T09:27:05.1318124Z             {
2026-06-15T09:27:05.1318263Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T09:27:05.1318359Z               "line": 795
2026-06-15T09:27:05.1318458Z             },
2026-06-15T09:27:05.1318554Z             {
2026-06-15T09:27:05.1318689Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T09:27:05.1318796Z               "line": 804
2026-06-15T09:27:05.1318902Z             },
2026-06-15T09:27:05.1319069Z             {
2026-06-15T09:27:05.1319201Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T09:27:05.1319311Z               "line": 815
2026-06-15T09:27:05.1319411Z             },
2026-06-15T09:27:05.1319511Z             {
2026-06-15T09:27:05.1319655Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T09:27:05.1319754Z               "line": 837
2026-06-15T09:27:05.1319854Z             },
2026-06-15T09:27:05.1319951Z             {
2026-06-15T09:27:05.1320083Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T09:27:05.1320188Z               "line": 856
2026-06-15T09:27:05.1320289Z             },
2026-06-15T09:27:05.1320389Z             {
2026-06-15T09:27:05.1320522Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T09:27:05.1320618Z               "line": 893
2026-06-15T09:27:05.1320722Z             },
2026-06-15T09:27:05.1320822Z             {
2026-06-15T09:27:05.1320966Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T09:27:05.1321070Z               "line": 922
2026-06-15T09:27:05.1321166Z             },
2026-06-15T09:27:05.1321271Z             {
2026-06-15T09:27:05.1321408Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T09:27:05.1321522Z               "line": 935
2026-06-15T09:27:05.1321725Z             },
2026-06-15T09:27:05.1321830Z             {
2026-06-15T09:27:05.1321964Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T09:27:05.1322068Z               "line": 979
2026-06-15T09:27:05.1322169Z             },
2026-06-15T09:27:05.1322264Z             {
2026-06-15T09:27:05.1322406Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T09:27:05.1322512Z               "line": 1006
2026-06-15T09:27:05.1322607Z             },
2026-06-15T09:27:05.1322693Z             {
2026-06-15T09:27:05.1322832Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T09:27:05.1322932Z               "line": 1022
2026-06-15T09:27:05.1323133Z             },
2026-06-15T09:27:05.1323232Z             {
2026-06-15T09:27:05.1323369Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T09:27:05.1323476Z               "line": 419
2026-06-15T09:27:05.1323575Z             },
2026-06-15T09:27:05.1323675Z             {
2026-06-15T09:27:05.1323819Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T09:27:05.1323923Z               "line": 431
2026-06-15T09:27:05.1324024Z             },
2026-06-15T09:27:05.1324120Z             {
2026-06-15T09:27:05.1324261Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T09:27:05.1324370Z               "line": 449
2026-06-15T09:27:05.1324470Z             },
2026-06-15T09:27:05.1324569Z             {
2026-06-15T09:27:05.1324692Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T09:27:05.1324803Z               "line": 471
2026-06-15T09:27:05.1324907Z             },
2026-06-15T09:27:05.1325002Z             {
2026-06-15T09:27:05.1325136Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T09:27:05.1325245Z               "line": 481
2026-06-15T09:27:05.1325341Z             },
2026-06-15T09:27:05.1325437Z             {
2026-06-15T09:27:05.1325579Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T09:27:05.1325685Z               "line": 504
2026-06-15T09:27:05.1325789Z             }
2026-06-15T09:27:05.1325889Z           ]
2026-06-15T09:27:05.1325985Z         }
2026-06-15T09:27:05.1326085Z       }
2026-06-15T09:27:05.1326175Z     },
2026-06-15T09:27:05.1326280Z     {
2026-06-15T09:27:05.1326391Z       "id": "REQ-RUN-SHORTCUT",
2026-06-15T09:27:05.1331330Z       "title": "`<basename>-<id>` launcher shortcut generation (picker `s` keybind, M12-W2-T2.4): from any pre-start options set the picker writes/updates a `<basename>-<id>` launcher at the project root baking the current selection's non-interactive `spt endpoint run` flags (terminal actions only: adapter[:profile] + id + (create|resume) + (start|attach|view); Kick/Instantiate/Change-adapter/Fork are interactive-only, not bakeable). BASENAME IS A PARAMETER (operator rev. 2026-06-14): harness-agnostic spt-core defaults to `spt` (→ `spt-<id>`); an adapter/flow OVERRIDES it (spt-claude-code → `cc`), so spt-core NEVER bakes `cc` (a harness name) into itself. The basename must be a DISTINCT token, never bare `spt` (a `spt.cmd` would shadow the real `spt.exe` only under cmd.exe cwd-first search, silently no-op in PowerShell/Unix, and self-recurse). The script is the CURRENT OS's native form — `.cmd` on Windows (NOT `.ps1`: default PATHEXT excludes `.ps1` so a bare/ext-less name never resolves one; `.cmd` is PATHEXT-resolvable), POSIX `sh` (+chmod +x) on Unix (a single portable form can't be both). The generated header documents the invocation reality (cmd.exe bare `<name>` in the project dir / PowerShell `.\\<name>` / Unix `./<name>`; a truly-bare basename on PATH = a PATH-installed launcher, `/spt:setup`'s job). Overwrite is SENTINEL-guarded: the generator writes + checks a generated-by header marker — it overwrites its own prior output freely, but REFUSES + warns if a same-named file lacks the sentinel (never clobber a user file). Requires the additive `--create` flag on `Run{}` (the default-fresh made explicit; N-1-safe).",
2026-06-15T09:27:05.1331470Z       "requiredStages": [
2026-06-15T09:27:05.1331563Z         "doc",
2026-06-15T09:27:05.1331780Z         "impl",
2026-06-15T09:27:05.1331883Z         "unit"
2026-06-15T09:27:05.1331982Z       ],
2026-06-15T09:27:05.1332082Z       "stages": {
2026-06-15T09:27:05.1332181Z         "doc": {
2026-06-15T09:27:05.1332299Z           "complete": true,
2026-06-15T09:27:05.1332409Z           "evidence": [
2026-06-15T09:27:05.1332510Z             {
2026-06-15T09:27:05.1332628Z               "path": "CONTEXT.md",
2026-06-15T09:27:05.1332729Z               "line": 347
2026-06-15T09:27:05.1332824Z             }
2026-06-15T09:27:05.1332929Z           ]
2026-06-15T09:27:05.1333024Z         },
2026-06-15T09:27:05.1333129Z         "impl": {
2026-06-15T09:27:05.1333344Z           "complete": true,
2026-06-15T09:27:05.1333454Z           "evidence": [
2026-06-15T09:27:05.1333553Z             {
2026-06-15T09:27:05.1333702Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T09:27:05.1333816Z               "line": 39
2026-06-15T09:27:05.1333916Z             },
2026-06-15T09:27:05.1334022Z             {
2026-06-15T09:27:05.1334159Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T09:27:05.1334254Z               "line": 79
2026-06-15T09:27:05.1334356Z             },
2026-06-15T09:27:05.1334464Z             {
2026-06-15T09:27:05.1334613Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T09:27:05.1334713Z               "line": 162
2026-06-15T09:27:05.1334816Z             }
2026-06-15T09:27:05.1334916Z           ]
2026-06-15T09:27:05.1335016Z         },
2026-06-15T09:27:05.1335114Z         "int": {
2026-06-15T09:27:05.1335223Z           "complete": false,
2026-06-15T09:27:05.1335339Z           "evidence": []
2026-06-15T09:27:05.1335438Z         },
2026-06-15T09:27:05.1335548Z         "unit": {
2026-06-15T09:27:05.1335658Z           "complete": true,
2026-06-15T09:27:05.1335763Z           "evidence": [
2026-06-15T09:27:05.1335867Z             {
2026-06-15T09:27:05.1336016Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T09:27:05.1336130Z               "line": 206
2026-06-15T09:27:05.1336230Z             },
2026-06-15T09:27:05.1336335Z             {
2026-06-15T09:27:05.1336477Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T09:27:05.1336589Z               "line": 222
2026-06-15T09:27:05.1336683Z             },
2026-06-15T09:27:05.1336783Z             {
2026-06-15T09:27:05.1336922Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T09:27:05.1337026Z               "line": 238
2026-06-15T09:27:05.1337121Z             },
2026-06-15T09:27:05.1337218Z             {
2026-06-15T09:27:05.1337360Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T09:27:05.1337473Z               "line": 251
2026-06-15T09:27:05.1337568Z             },
2026-06-15T09:27:05.1337662Z             {
2026-06-15T09:27:05.1337804Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T09:27:05.1337906Z               "line": 258
2026-06-15T09:27:05.1338005Z             }
2026-06-15T09:27:05.1338110Z           ]
2026-06-15T09:27:05.1338206Z         }
2026-06-15T09:27:05.1338306Z       }
2026-06-15T09:27:05.1338410Z     },
2026-06-15T09:27:05.1338506Z     {
2026-06-15T09:27:05.1338630Z       "id": "REQ-SEAM-ACTIVITY",
2026-06-15T09:27:05.1338840Z       "title": "Activity/idle reported via api sentinels, not PTY quiescence",
2026-06-15T09:27:05.1339039Z       "requiredStages": [
2026-06-15T09:27:05.1339131Z         "impl",
2026-06-15T09:27:05.1339231Z         "unit"
2026-06-15T09:27:05.1339331Z       ],
2026-06-15T09:27:05.1339427Z       "stages": {
2026-06-15T09:27:05.1339527Z         "doc": {
2026-06-15T09:27:05.1339632Z           "complete": false,
2026-06-15T09:27:05.1339752Z           "evidence": []
2026-06-15T09:27:05.1339851Z         },
2026-06-15T09:27:05.1339951Z         "impl": {
2026-06-15T09:27:05.1340057Z           "complete": true,
2026-06-15T09:27:05.1340161Z           "evidence": [
2026-06-15T09:27:05.1340259Z             {
2026-06-15T09:27:05.1340398Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T09:27:05.1340602Z               "line": 18
2026-06-15T09:27:05.1340703Z             },
2026-06-15T09:27:05.1340803Z             {
2026-06-15T09:27:05.1340941Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T09:27:05.1341037Z               "line": 35
2026-06-15T09:27:05.1341137Z             },
2026-06-15T09:27:05.1341241Z             {
2026-06-15T09:27:05.1341376Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T09:27:05.1341489Z               "line": 72
2026-06-15T09:27:05.1341584Z             }
2026-06-15T09:27:05.1341691Z           ]
2026-06-15T09:27:05.1341790Z         },
2026-06-15T09:27:05.1341987Z         "int": {
2026-06-15T09:27:05.1342105Z           "complete": false,
2026-06-15T09:27:05.1342209Z           "evidence": []
2026-06-15T09:27:05.1342306Z         },
2026-06-15T09:27:05.1342401Z         "unit": {
2026-06-15T09:27:05.1342519Z           "complete": true,
2026-06-15T09:27:05.1342624Z           "evidence": [
2026-06-15T09:27:05.1342723Z             {
2026-06-15T09:27:05.1342865Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T09:27:05.1342969Z               "line": 224
2026-06-15T09:27:05.1343066Z             },
2026-06-15T09:27:05.1343164Z             {
2026-06-15T09:27:05.1343303Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T09:27:05.1343404Z               "line": 241
2026-06-15T09:27:05.1343503Z             },
2026-06-15T09:27:05.1343599Z             {
2026-06-15T09:27:05.1343738Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T09:27:05.1343846Z               "line": 250
2026-06-15T09:27:05.1343943Z             }
2026-06-15T09:27:05.1344042Z           ]
2026-06-15T09:27:05.1344142Z         }
2026-06-15T09:27:05.1344233Z       }
2026-06-15T09:27:05.1344333Z     },
2026-06-15T09:27:05.1344428Z     {
2026-06-15T09:27:05.1344548Z       "id": "REQ-SEAM-CAPABILITY",
2026-06-15T09:27:05.1344729Z       "title": "Hostable endpoint-types capability declaration",
2026-06-15T09:27:05.1344863Z       "requiredStages": [
2026-06-15T09:27:05.1344967Z         "impl",
2026-06-15T09:27:05.1345067Z         "unit"
2026-06-15T09:27:05.1345164Z       ],
2026-06-15T09:27:05.1345264Z       "stages": {
2026-06-15T09:27:05.1345367Z         "doc": {
2026-06-15T09:27:05.1345481Z           "complete": false,
2026-06-15T09:27:05.1345586Z           "evidence": []
2026-06-15T09:27:05.1345684Z         },
2026-06-15T09:27:05.1345783Z         "impl": {
2026-06-15T09:27:05.1345899Z           "complete": true,
2026-06-15T09:27:05.1346008Z           "evidence": [
2026-06-15T09:27:05.1346113Z             {
2026-06-15T09:27:05.1346261Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:27:05.1346375Z               "line": 474
2026-06-15T09:27:05.1346476Z             }
2026-06-15T09:27:05.1346571Z           ]
2026-06-15T09:27:05.1346666Z         },
2026-06-15T09:27:05.1346767Z         "int": {
2026-06-15T09:27:05.1346881Z           "complete": false,
2026-06-15T09:27:05.1346985Z           "evidence": []
2026-06-15T09:27:05.1347096Z         },
2026-06-15T09:27:05.1347191Z         "unit": {
2026-06-15T09:27:05.1347310Z           "complete": true,
2026-06-15T09:27:05.1347420Z           "evidence": [
2026-06-15T09:27:05.1347520Z             {
2026-06-15T09:27:05.1347658Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:27:05.1347764Z               "line": 843
2026-06-15T09:27:05.1347868Z             }
2026-06-15T09:27:05.1347967Z           ]
2026-06-15T09:27:05.1348062Z         }
2026-06-15T09:27:05.1348157Z       }
2026-06-15T09:27:05.1348256Z     },
2026-06-15T09:27:05.1348350Z     {
2026-06-15T09:27:05.1348471Z       "id": "REQ-SEAM-HISTORY",
2026-06-15T09:27:05.1348689Z       "title": "History subsystem (fetcher / locate-normalize / native store)",
2026-06-15T09:27:05.1348790Z       "requiredStages": [
2026-06-15T09:27:05.1348890Z         "impl",
2026-06-15T09:27:05.1349067Z         "unit",
2026-06-15T09:27:05.1349166Z         "int"
2026-06-15T09:27:05.1349261Z       ],
2026-06-15T09:27:05.1349462Z       "stages": {
2026-06-15T09:27:05.1349562Z         "doc": {
2026-06-15T09:27:05.1349677Z           "complete": false,
2026-06-15T09:27:05.1349786Z           "evidence": []
2026-06-15T09:27:05.1349886Z         },
2026-06-15T09:27:05.1349982Z         "impl": {
2026-06-15T09:27:05.1350101Z           "complete": true,
2026-06-15T09:27:05.1350201Z           "evidence": [
2026-06-15T09:27:05.1350297Z             {
2026-06-15T09:27:05.1350434Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T09:27:05.1350553Z               "line": 24
2026-06-15T09:27:05.1350660Z             },
2026-06-15T09:27:05.1350759Z             {
2026-06-15T09:27:05.1351021Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T09:27:05.1351116Z               "line": 22
2026-06-15T09:27:05.1351215Z             }
2026-06-15T09:27:05.1351316Z           ]
2026-06-15T09:27:05.1351412Z         },
2026-06-15T09:27:05.1351510Z         "int": {
2026-06-15T09:27:05.1351612Z           "complete": true,
2026-06-15T09:27:05.1351726Z           "evidence": [
2026-06-15T09:27:05.1351820Z             {
2026-06-15T09:27:05.1351970Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T09:27:05.1352069Z               "line": 260
2026-06-15T09:27:05.1352169Z             }
2026-06-15T09:27:05.1352265Z           ]
2026-06-15T09:27:05.1352364Z         },
2026-06-15T09:27:05.1352459Z         "unit": {
2026-06-15T09:27:05.1352571Z           "complete": true,
2026-06-15T09:27:05.1352679Z           "evidence": [
2026-06-15T09:27:05.1352770Z             {
2026-06-15T09:27:05.1352909Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T09:27:05.1353022Z               "line": 171
2026-06-15T09:27:05.1353117Z             },
2026-06-15T09:27:05.1353212Z             {
2026-06-15T09:27:05.1353349Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T09:27:05.1353458Z               "line": 200
2026-06-15T09:27:05.1353563Z             },
2026-06-15T09:27:05.1353668Z             {
2026-06-15T09:27:05.1353811Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T09:27:05.1353916Z               "line": 220
2026-06-15T09:27:05.1354020Z             },
2026-06-15T09:27:05.1354115Z             {
2026-06-15T09:27:05.1354254Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T09:27:05.1354358Z               "line": 199
2026-06-15T09:27:05.1354470Z             },
2026-06-15T09:27:05.1354569Z             {
2026-06-15T09:27:05.1354707Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T09:27:05.1354808Z               "line": 219
2026-06-15T09:27:05.1354907Z             },
2026-06-15T09:27:05.1355007Z             {
2026-06-15T09:27:05.1355152Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T09:27:05.1355260Z               "line": 244
2026-06-15T09:27:05.1355360Z             },
2026-06-15T09:27:05.1355457Z             {
2026-06-15T09:27:05.1355598Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T09:27:05.1355699Z               "line": 276
2026-06-15T09:27:05.1355805Z             },
2026-06-15T09:27:05.1355903Z             {
2026-06-15T09:27:05.1356046Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T09:27:05.1356151Z               "line": 297
2026-06-15T09:27:05.1356244Z             },
2026-06-15T09:27:05.1356348Z             {
2026-06-15T09:27:05.1356488Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T09:27:05.1356601Z               "line": 324
2026-06-15T09:27:05.1356702Z             }
2026-06-15T09:27:05.1356812Z           ]
2026-06-15T09:27:05.1356916Z         }
2026-06-15T09:27:05.1357012Z       }
2026-06-15T09:27:05.1357112Z     },
2026-06-15T09:27:05.1357212Z     {
2026-06-15T09:27:05.1357331Z       "id": "REQ-SEAM-INJECT",
2026-06-15T09:27:05.1357517Z       "title": "inject-input methods configurable per activity-state",
2026-06-15T09:27:05.1357636Z       "requiredStages": [
2026-06-15T09:27:05.1357737Z         "impl",
2026-06-15T09:27:05.1357836Z         "unit"
2026-06-15T09:27:05.1358000Z       ],
2026-06-15T09:27:05.1358099Z       "stages": {
2026-06-15T09:27:05.1358209Z         "doc": {
2026-06-15T09:27:05.1358314Z           "complete": false,
2026-06-15T09:27:05.1358428Z           "evidence": []
2026-06-15T09:27:05.1358532Z         },
2026-06-15T09:27:05.1358631Z         "impl": {
2026-06-15T09:27:05.1358750Z           "complete": true,
2026-06-15T09:27:05.1358854Z           "evidence": [
2026-06-15T09:27:05.1359026Z             {
2026-06-15T09:27:05.1359159Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T09:27:05.1359278Z               "line": 19
2026-06-15T09:27:05.1359379Z             },
2026-06-15T09:27:05.1359478Z             {
2026-06-15T09:27:05.1359712Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T09:27:05.1359812Z               "line": 111
2026-06-15T09:27:05.1359913Z             }
2026-06-15T09:27:05.1360017Z           ]
2026-06-15T09:27:05.1360112Z         },
2026-06-15T09:27:05.1360218Z         "int": {
2026-06-15T09:27:05.1360337Z           "complete": false,
2026-06-15T09:27:05.1360451Z           "evidence": []
2026-06-15T09:27:05.1360552Z         },
2026-06-15T09:27:05.1360651Z         "unit": {
2026-06-15T09:27:05.1360752Z           "complete": true,
2026-06-15T09:27:05.1360862Z           "evidence": [
2026-06-15T09:27:05.1360962Z             {
2026-06-15T09:27:05.1361100Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T09:27:05.1361201Z               "line": 330
2026-06-15T09:27:05.1361295Z             },
2026-06-15T09:27:05.1361394Z             {
2026-06-15T09:27:05.1361533Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T09:27:05.1361643Z               "line": 350
2026-06-15T09:27:05.1361751Z             }
2026-06-15T09:27:05.1361852Z           ]
2026-06-15T09:27:05.1361948Z         }
2026-06-15T09:27:05.1362047Z       }
2026-06-15T09:27:05.1362148Z     },
2026-06-15T09:27:05.1362243Z     {
2026-06-15T09:27:05.1362362Z       "id": "REQ-SEAM-POSTSPAWN",
2026-06-15T09:27:05.1362530Z       "title": "post-spawn / api bind seam with boot nonce",
2026-06-15T09:27:05.1362634Z       "requiredStages": [
2026-06-15T09:27:05.1362743Z         "impl",
2026-06-15T09:27:05.1362840Z         "unit"
2026-06-15T09:27:05.1362944Z       ],
2026-06-15T09:27:05.1363043Z       "stages": {
2026-06-15T09:27:05.1363145Z         "doc": {
2026-06-15T09:27:05.1363258Z           "complete": false,
2026-06-15T09:27:05.1363363Z           "evidence": []
2026-06-15T09:27:05.1363465Z         },
2026-06-15T09:27:05.1363568Z         "impl": {
2026-06-15T09:27:05.1363682Z           "complete": true,
2026-06-15T09:27:05.1363777Z           "evidence": [
2026-06-15T09:27:05.1363881Z             {
2026-06-15T09:27:05.1364032Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:27:05.1364138Z               "line": 18
2026-06-15T09:27:05.1364238Z             },
2026-06-15T09:27:05.1364337Z             {
2026-06-15T09:27:05.1364477Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:27:05.1364590Z               "line": 353
2026-06-15T09:27:05.1364680Z             }
2026-06-15T09:27:05.1364782Z           ]
2026-06-15T09:27:05.1364872Z         },
2026-06-15T09:27:05.1364976Z         "int": {
2026-06-15T09:27:05.1365092Z           "complete": false,
2026-06-15T09:27:05.1365206Z           "evidence": []
2026-06-15T09:27:05.1365306Z         },
2026-06-15T09:27:05.1365406Z         "unit": {
2026-06-15T09:27:05.1365516Z           "complete": true,
2026-06-15T09:27:05.1365620Z           "evidence": [
2026-06-15T09:27:05.1365726Z             {
2026-06-15T09:27:05.1365859Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:27:05.1365969Z               "line": 606
2026-06-15T09:27:05.1366079Z             },
2026-06-15T09:27:05.1366173Z             {
2026-06-15T09:27:05.1366318Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:27:05.1366417Z               "line": 616
2026-06-15T09:27:05.1366516Z             }
2026-06-15T09:27:05.1366616Z           ]
2026-06-15T09:27:05.1366813Z         }
2026-06-15T09:27:05.1366908Z       }
2026-06-15T09:27:05.1367010Z     },
2026-06-15T09:27:05.1367110Z     {
2026-06-15T09:27:05.1367233Z       "id": "REQ-SEAM-PSYCHE",
2026-06-15T09:27:05.1367406Z       "title": "spawn-psyche seam (fresh + resume templates)",
2026-06-15T09:27:05.1367519Z       "requiredStages": [
2026-06-15T09:27:05.1367620Z         "impl",
2026-06-15T09:27:05.1367725Z         "unit",
2026-06-15T09:27:05.1367819Z         "int"
2026-06-15T09:27:05.1367920Z       ],
2026-06-15T09:27:05.1368015Z       "stages": {
2026-06-15T09:27:05.1368115Z         "doc": {
2026-06-15T09:27:05.1368226Z           "complete": false,
2026-06-15T09:27:05.1368340Z           "evidence": []
2026-06-15T09:27:05.1368516Z         },
2026-06-15T09:27:05.1368617Z         "impl": {
2026-06-15T09:27:05.1368735Z           "complete": true,
2026-06-15T09:27:05.1368841Z           "evidence": [
2026-06-15T09:27:05.1369025Z             {
2026-06-15T09:27:05.1369163Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-15T09:27:05.1369273Z               "line": 19
2026-06-15T09:27:05.1369366Z             },
2026-06-15T09:27:05.1369470Z             {
2026-06-15T09:27:05.1369605Z               "path": "crates/spt/src/api/live.rs",
2026-06-15T09:27:05.1369709Z               "line": 12
2026-06-15T09:27:05.1369810Z             },
2026-06-15T09:27:05.1369905Z             {
2026-06-15T09:27:05.1370048Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:27:05.1370144Z               "line": 241
2026-06-15T09:27:05.1370244Z             }
2026-06-15T09:27:05.1370343Z           ]
2026-06-15T09:27:05.1370434Z         },
2026-06-15T09:27:05.1370530Z         "int": {
2026-06-15T09:27:05.1370654Z           "complete": true,
2026-06-15T09:27:05.1370768Z           "evidence": [
2026-06-15T09:27:05.1370864Z             {
2026-06-15T09:27:05.1371011Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T09:27:05.1371117Z               "line": 259
2026-06-15T09:27:05.1371216Z             }
2026-06-15T09:27:05.1371316Z           ]
2026-06-15T09:27:05.1371417Z         },
2026-06-15T09:27:05.1371526Z         "unit": {
2026-06-15T09:27:05.1371631Z           "complete": true,
2026-06-15T09:27:05.1371737Z           "evidence": [
2026-06-15T09:27:05.1371832Z             {
2026-06-15T09:27:05.1371969Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-15T09:27:05.1372073Z               "line": 161
2026-06-15T09:27:05.1372175Z             },
2026-06-15T09:27:05.1372274Z             {
2026-06-15T09:27:05.1372412Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-15T09:27:05.1372527Z               "line": 168
2026-06-15T09:27:05.1372626Z             },
2026-06-15T09:27:05.1372733Z             {
2026-06-15T09:27:05.1372866Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-15T09:27:05.1372969Z               "line": 191
2026-06-15T09:27:05.1373066Z             },
2026-06-15T09:27:05.1373166Z             {
2026-06-15T09:27:05.1373308Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-15T09:27:05.1373423Z               "line": 106
2026-06-15T09:27:05.1373518Z             },
2026-06-15T09:27:05.1373618Z             {
2026-06-15T09:27:05.1373752Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-15T09:27:05.1373866Z               "line": 137
2026-06-15T09:27:05.1373962Z             },
2026-06-15T09:27:05.1374067Z             {
2026-06-15T09:27:05.1374208Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-15T09:27:05.1374313Z               "line": 161
2026-06-15T09:27:05.1374418Z             }
2026-06-15T09:27:05.1374521Z           ]
2026-06-15T09:27:05.1374621Z         }
2026-06-15T09:27:05.1374718Z       }
2026-06-15T09:27:05.1374817Z     },
2026-06-15T09:27:05.1374917Z     {
2026-06-15T09:27:05.1375037Z       "id": "REQ-SEAM-RESUME",
2026-06-15T09:27:05.1375260Z       "title": "resume-session seam (fresh-with-preload / continue-existing)",
2026-06-15T09:27:05.1375375Z       "requiredStages": [
2026-06-15T09:27:05.1375479Z         "impl",
2026-06-15T09:27:05.1375671Z         "unit"
2026-06-15T09:27:05.1375770Z       ],
2026-06-15T09:27:05.1375871Z       "stages": {
2026-06-15T09:27:05.1375976Z         "doc": {
2026-06-15T09:27:05.1376090Z           "complete": false,
2026-06-15T09:27:05.1376204Z           "evidence": []
2026-06-15T09:27:05.1376305Z         },
2026-06-15T09:27:05.1376394Z         "impl": {
2026-06-15T09:27:05.1376510Z           "complete": true,
2026-06-15T09:27:05.1376620Z           "evidence": [
2026-06-15T09:27:05.1376719Z             {
2026-06-15T09:27:05.1376858Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T09:27:05.1376968Z               "line": 19
2026-06-15T09:27:05.1377061Z             }
2026-06-15T09:27:05.1377247Z           ]
2026-06-15T09:27:05.1377346Z         },
2026-06-15T09:27:05.1377450Z         "int": {
2026-06-15T09:27:05.1377560Z           "complete": false,
2026-06-15T09:27:05.1377670Z           "evidence": []
2026-06-15T09:27:05.1377769Z         },
2026-06-15T09:27:05.1377866Z         "unit": {
2026-06-15T09:27:05.1377980Z           "complete": true,
2026-06-15T09:27:05.1378089Z           "evidence": [
2026-06-15T09:27:05.1378195Z             {
2026-06-15T09:27:05.1378328Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T09:27:05.1378432Z               "line": 201
2026-06-15T09:27:05.1378533Z             },
2026-06-15T09:27:05.1378652Z             {
2026-06-15T09:27:05.1378815Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T09:27:05.1378923Z               "line": 223
2026-06-15T09:27:05.1379111Z             },
2026-06-15T09:27:05.1379206Z             {
2026-06-15T09:27:05.1379353Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T09:27:05.1379468Z               "line": 244
2026-06-15T09:27:05.1379572Z             }
2026-06-15T09:27:05.1379667Z           ]
2026-06-15T09:27:05.1379771Z         }
2026-06-15T09:27:05.1379871Z       }
2026-06-15T09:27:05.1379969Z     },
2026-06-15T09:27:05.1380060Z     {
2026-06-15T09:27:05.1380180Z       "id": "REQ-SEAM-SPAWN",
2026-06-15T09:27:05.1380303Z       "title": "spawn-session seam",
2026-06-15T09:27:05.1380413Z       "requiredStages": [
2026-06-15T09:27:05.1380518Z         "impl",
2026-06-15T09:27:05.1380622Z         "unit"
2026-06-15T09:27:05.1380723Z       ],
2026-06-15T09:27:05.1380832Z       "stages": {
2026-06-15T09:27:05.1380932Z         "doc": {
2026-06-15T09:27:05.1381048Z           "complete": false,
2026-06-15T09:27:05.1381156Z           "evidence": []
2026-06-15T09:27:05.1381256Z         },
2026-06-15T09:27:05.1383988Z         "impl": {
2026-06-15T09:27:05.1384131Z           "complete": true,
2026-06-15T09:27:05.1384247Z           "evidence": [
2026-06-15T09:27:05.1384360Z             {
2026-06-15T09:27:05.1384522Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T09:27:05.1384623Z               "line": 20
2026-06-15T09:27:05.1384731Z             }
2026-06-15T09:27:05.1384835Z           ]
2026-06-15T09:27:05.1384931Z         },
2026-06-15T09:27:05.1385020Z         "int": {
2026-06-15T09:27:05.1385138Z           "complete": false,
2026-06-15T09:27:05.1385253Z           "evidence": []
2026-06-15T09:27:05.1385353Z         },
2026-06-15T09:27:05.1385448Z         "unit": {
2026-06-15T09:27:05.1385563Z           "complete": true,
2026-06-15T09:27:05.1385668Z           "evidence": [
2026-06-15T09:27:05.1385767Z             {
2026-06-15T09:27:05.1385907Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T09:27:05.1386025Z               "line": 435
2026-06-15T09:27:05.1386116Z             },
2026-06-15T09:27:05.1386217Z             {
2026-06-15T09:27:05.1386364Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T09:27:05.1386479Z               "line": 442
2026-06-15T09:27:05.1386583Z             },
2026-06-15T09:27:05.1386679Z             {
2026-06-15T09:27:05.1386828Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T09:27:05.1386936Z               "line": 452
2026-06-15T09:27:05.1387041Z             },
2026-06-15T09:27:05.1387142Z             {
2026-06-15T09:27:05.1387423Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T09:27:05.1387523Z               "line": 458
2026-06-15T09:27:05.1387622Z             },
2026-06-15T09:27:05.1387721Z             {
2026-06-15T09:27:05.1387859Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T09:27:05.1387962Z               "line": 483
2026-06-15T09:27:05.1388068Z             },
2026-06-15T09:27:05.1388168Z             {
2026-06-15T09:27:05.1388320Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T09:27:05.1388416Z               "line": 520
2026-06-15T09:27:05.1388511Z             }
2026-06-15T09:27:05.1388615Z           ]
2026-06-15T09:27:05.1388840Z         }
2026-06-15T09:27:05.1389026Z       }
2026-06-15T09:27:05.1389108Z     },
2026-06-15T09:27:05.1389212Z     {
2026-06-15T09:27:05.1389326Z       "id": "REQ-SEAM-UPDATE",
2026-06-15T09:27:05.1389521Z       "title": "Adapter-update avenue (file-pull / delegated command)",
2026-06-15T09:27:05.1389641Z       "requiredStages": [
2026-06-15T09:27:05.1389742Z         "impl",
2026-06-15T09:27:05.1389841Z         "unit"
2026-06-15T09:27:05.1389937Z       ],
2026-06-15T09:27:05.1390038Z       "stages": {
2026-06-15T09:27:05.1390142Z         "doc": {
2026-06-15T09:27:05.1390260Z           "complete": false,
2026-06-15T09:27:05.1390355Z           "evidence": []
2026-06-15T09:27:05.1390454Z         },
2026-06-15T09:27:05.1390558Z         "impl": {
2026-06-15T09:27:05.1390672Z           "complete": true,
2026-06-15T09:27:05.1390774Z           "evidence": [
2026-06-15T09:27:05.1390872Z             {
2026-06-15T09:27:05.1391031Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T09:27:05.1391149Z               "line": 28
2026-06-15T09:27:05.1391244Z             },
2026-06-15T09:27:05.1391350Z             {
2026-06-15T09:27:05.1391506Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T09:27:05.1391617Z               "line": 83
2026-06-15T09:27:05.1391716Z             }
2026-06-15T09:27:05.1391816Z           ]
2026-06-15T09:27:05.1391913Z         },
2026-06-15T09:27:05.1392013Z         "int": {
2026-06-15T09:27:05.1392126Z           "complete": false,
2026-06-15T09:27:05.1392228Z           "evidence": []
2026-06-15T09:27:05.1392323Z         },
2026-06-15T09:27:05.1392423Z         "unit": {
2026-06-15T09:27:05.1392538Z           "complete": true,
2026-06-15T09:27:05.1392638Z           "evidence": [
2026-06-15T09:27:05.1392747Z             {
2026-06-15T09:27:05.1392905Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T09:27:05.1393013Z               "line": 286
2026-06-15T09:27:05.1393117Z             },
2026-06-15T09:27:05.1393213Z             {
2026-06-15T09:27:05.1393370Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T09:27:05.1393484Z               "line": 297
2026-06-15T09:27:05.1393581Z             }
2026-06-15T09:27:05.1393680Z           ]
2026-06-15T09:27:05.1393780Z         }
2026-06-15T09:27:05.1393886Z       }
2026-06-15T09:27:05.1393981Z     },
2026-06-15T09:27:05.1394080Z     {
2026-06-15T09:27:05.1394182Z       "id": "REQ-SEC-1",
2026-06-15T09:27:05.1394629Z       "title": "Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants",
2026-06-15T09:27:05.1394743Z       "requiredStages": [
2026-06-15T09:27:05.1394845Z         "impl",
2026-06-15T09:27:05.1394943Z         "unit"
2026-06-15T09:27:05.1395044Z       ],
2026-06-15T09:27:05.1395150Z       "stages": {
2026-06-15T09:27:05.1395248Z         "doc": {
2026-06-15T09:27:05.1395362Z           "complete": false,
2026-06-15T09:27:05.1395472Z           "evidence": []
2026-06-15T09:27:05.1395575Z         },
2026-06-15T09:27:05.1395674Z         "impl": {
2026-06-15T09:27:05.1395790Z           "complete": true,
2026-06-15T09:27:05.1395899Z           "evidence": [
2026-06-15T09:27:05.1395999Z             {
2026-06-15T09:27:05.1396143Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T09:27:05.1396356Z               "line": 86
2026-06-15T09:27:05.1396457Z             },
2026-06-15T09:27:05.1396557Z             {
2026-06-15T09:27:05.1396696Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T09:27:05.1396810Z               "line": 116
2026-06-15T09:27:05.1396914Z             },
2026-06-15T09:27:05.1397010Z             {
2026-06-15T09:27:05.1397148Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T09:27:05.1397248Z               "line": 130
2026-06-15T09:27:05.1397349Z             },
2026-06-15T09:27:05.1397435Z             {
2026-06-15T09:27:05.1397577Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T09:27:05.1397778Z               "line": 109
2026-06-15T09:27:05.1397878Z             },
2026-06-15T09:27:05.1397979Z             {
2026-06-15T09:27:05.1398121Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T09:27:05.1398234Z               "line": 130
2026-06-15T09:27:05.1398339Z             },
2026-06-15T09:27:05.1398447Z             {
2026-06-15T09:27:05.1398589Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T09:27:05.1398690Z               "line": 143
2026-06-15T09:27:05.1398785Z             },
2026-06-15T09:27:05.1398884Z             {
2026-06-15T09:27:05.1399100Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T09:27:05.1399204Z               "line": 209
2026-06-15T09:27:05.1399306Z             },
2026-06-15T09:27:05.1399405Z             {
2026-06-15T09:27:05.1399543Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T09:27:05.1399653Z               "line": 235
2026-06-15T09:27:05.1399753Z             },
2026-06-15T09:27:05.1399863Z             {
2026-06-15T09:27:05.1399987Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1400096Z               "line": 4740
2026-06-15T09:27:05.1400192Z             }
2026-06-15T09:27:05.1400293Z           ]
2026-06-15T09:27:05.1400392Z         },
2026-06-15T09:27:05.1400482Z         "int": {
2026-06-15T09:27:05.1400603Z           "complete": false,
2026-06-15T09:27:05.1400702Z           "evidence": []
2026-06-15T09:27:05.1400796Z         },
2026-06-15T09:27:05.1400897Z         "unit": {
2026-06-15T09:27:05.1401009Z           "complete": true,
2026-06-15T09:27:05.1401118Z           "evidence": [
2026-06-15T09:27:05.1401214Z             {
2026-06-15T09:27:05.1401352Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T09:27:05.1401451Z               "line": 142
2026-06-15T09:27:05.1401558Z             },
2026-06-15T09:27:05.1401653Z             {
2026-06-15T09:27:05.1401790Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T09:27:05.1401910Z               "line": 194
2026-06-15T09:27:05.1402006Z             },
2026-06-15T09:27:05.1402105Z             {
2026-06-15T09:27:05.1402239Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T09:27:05.1402344Z               "line": 235
2026-06-15T09:27:05.1402444Z             },
2026-06-15T09:27:05.1402535Z             {
2026-06-15T09:27:05.1402678Z               "path": "crates/spt-daemon/tests/access.rs",
2026-06-15T09:27:05.1402773Z               "line": 140
2026-06-15T09:27:05.1402874Z             },
2026-06-15T09:27:05.1402973Z             {
2026-06-15T09:27:05.1403108Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T09:27:05.1403212Z               "line": 247
2026-06-15T09:27:05.1403312Z             },
2026-06-15T09:27:05.1403413Z             {
2026-06-15T09:27:05.1403555Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T09:27:05.1403659Z               "line": 277
2026-06-15T09:27:05.1403759Z             },
2026-06-15T09:27:05.1403860Z             {
2026-06-15T09:27:05.1404006Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T09:27:05.1404102Z               "line": 310
2026-06-15T09:27:05.1404208Z             },
2026-06-15T09:27:05.1404307Z             {
2026-06-15T09:27:05.1404446Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T09:27:05.1404650Z               "line": 329
2026-06-15T09:27:05.1404747Z             },
2026-06-15T09:27:05.1404846Z             {
2026-06-15T09:27:05.1404979Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T09:27:05.1405081Z               "line": 362
2026-06-15T09:27:05.1405179Z             },
2026-06-15T09:27:05.1405275Z             {
2026-06-15T09:27:05.1405410Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T09:27:05.1405508Z               "line": 386
2026-06-15T09:27:05.1405614Z             },
2026-06-15T09:27:05.1405710Z             {
2026-06-15T09:27:05.1405837Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1405936Z               "line": 6690
2026-06-15T09:27:05.1406140Z             }
2026-06-15T09:27:05.1406235Z           ]
2026-06-15T09:27:05.1406330Z         }
2026-06-15T09:27:05.1406422Z       }
2026-06-15T09:27:05.1406521Z     },
2026-06-15T09:27:05.1406626Z     {
2026-06-15T09:27:05.1406731Z       "id": "REQ-SHELL-1",
2026-06-15T09:27:05.1407689Z       "title": "Shell hosting machinery: shell perch under the owner (type/owner/adapter_name/status/alias), broker-launched binary + api bind local-link handshake, the three channels (command durable, text+file durable + progress-queryable, sensory REST-only never spooled + dropped-unless-owner-live), owner exclusivity (CONTEXT Shell model)",
2026-06-15T09:27:05.1407813Z       "requiredStages": [
2026-06-15T09:27:05.1407909Z         "impl",
2026-06-15T09:27:05.1408013Z         "unit",
2026-06-15T09:27:05.1408109Z         "int"
2026-06-15T09:27:05.1408215Z       ],
2026-06-15T09:27:05.1408319Z       "stages": {
2026-06-15T09:27:05.1408419Z         "doc": {
2026-06-15T09:27:05.1408539Z           "complete": false,
2026-06-15T09:27:05.1408639Z           "evidence": []
2026-06-15T09:27:05.1408737Z         },
2026-06-15T09:27:05.1408832Z         "impl": {
2026-06-15T09:27:05.1409026Z           "complete": true,
2026-06-15T09:27:05.1409130Z           "evidence": [
2026-06-15T09:27:05.1409231Z             {
2026-06-15T09:27:05.1409393Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T09:27:05.1409493Z               "line": 94
2026-06-15T09:27:05.1409589Z             },
2026-06-15T09:27:05.1409679Z             {
2026-06-15T09:27:05.1409822Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T09:27:05.1409937Z               "line": 121
2026-06-15T09:27:05.1410036Z             },
2026-06-15T09:27:05.1410137Z             {
2026-06-15T09:27:05.1410280Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T09:27:05.1410390Z               "line": 27
2026-06-15T09:27:05.1410486Z             },
2026-06-15T09:27:05.1410585Z             {
2026-06-15T09:27:05.1410742Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T09:27:05.1410839Z               "line": 52
2026-06-15T09:27:05.1410947Z             },
2026-06-15T09:27:05.1411043Z             {
2026-06-15T09:27:05.1411186Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T09:27:05.1411300Z               "line": 132
2026-06-15T09:27:05.1411399Z             },
2026-06-15T09:27:05.1411504Z             {
2026-06-15T09:27:05.1411645Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T09:27:05.1411755Z               "line": 164
2026-06-15T09:27:05.1411856Z             },
2026-06-15T09:27:05.1411955Z             {
2026-06-15T09:27:05.1412094Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T09:27:05.1412194Z               "line": 22
2026-06-15T09:27:05.1412284Z             },
2026-06-15T09:27:05.1412384Z             {
2026-06-15T09:27:05.1412527Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T09:27:05.1412641Z               "line": 65
2026-06-15T09:27:05.1412743Z             },
2026-06-15T09:27:05.1412842Z             {
2026-06-15T09:27:05.1412980Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T09:27:05.1413081Z               "line": 76
2026-06-15T09:27:05.1413180Z             },
2026-06-15T09:27:05.1413280Z             {
2026-06-15T09:27:05.1413518Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T09:27:05.1413629Z               "line": 150
2026-06-15T09:27:05.1413720Z             },
2026-06-15T09:27:05.1413819Z             {
2026-06-15T09:27:05.1413968Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T09:27:05.1414068Z               "line": 209
2026-06-15T09:27:05.1414167Z             },
2026-06-15T09:27:05.1414271Z             {
2026-06-15T09:27:05.1414420Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T09:27:05.1414523Z               "line": 249
2026-06-15T09:27:05.1414619Z             },
2026-06-15T09:27:05.1414815Z             {
2026-06-15T09:27:05.1414959Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T09:27:05.1415072Z               "line": 270
2026-06-15T09:27:05.1415172Z             },
2026-06-15T09:27:05.1415268Z             {
2026-06-15T09:27:05.1415410Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T09:27:05.1415515Z               "line": 283
2026-06-15T09:27:05.1415621Z             },
2026-06-15T09:27:05.1415721Z             {
2026-06-15T09:27:05.1415859Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:27:05.1415970Z               "line": 217
2026-06-15T09:27:05.1416068Z             },
2026-06-15T09:27:05.1416164Z             {
2026-06-15T09:27:05.1416299Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:27:05.1416407Z               "line": 233
2026-06-15T09:27:05.1416506Z             },
2026-06-15T09:27:05.1416611Z             {
2026-06-15T09:27:05.1416757Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T09:27:05.1416872Z               "line": 41
2026-06-15T09:27:05.1416977Z             },
2026-06-15T09:27:05.1417076Z             {
2026-06-15T09:27:05.1417215Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T09:27:05.1417315Z               "line": 222
2026-06-15T09:27:05.1417424Z             },
2026-06-15T09:27:05.1417516Z             {
2026-06-15T09:27:05.1417659Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T09:27:05.1417772Z               "line": 160
2026-06-15T09:27:05.1417869Z             },
2026-06-15T09:27:05.1417973Z             {
2026-06-15T09:27:05.1418106Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T09:27:05.1418207Z               "line": 319
2026-06-15T09:27:05.1418302Z             },
2026-06-15T09:27:05.1418407Z             {
2026-06-15T09:27:05.1418546Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T09:27:05.1418645Z               "line": 371
2026-06-15T09:27:05.1418745Z             },
2026-06-15T09:27:05.1418851Z             {
2026-06-15T09:27:05.1419114Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:27:05.1419236Z               "line": 329
2026-06-15T09:27:05.1419341Z             },
2026-06-15T09:27:05.1419440Z             {
2026-06-15T09:27:05.1419572Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1419690Z               "line": 5454
2026-06-15T09:27:05.1419782Z             },
2026-06-15T09:27:05.1419882Z             {
2026-06-15T09:27:05.1420019Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1420126Z               "line": 5604
2026-06-15T09:27:05.1420225Z             },
2026-06-15T09:27:05.1420320Z             {
2026-06-15T09:27:05.1420445Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1420554Z               "line": 5641
2026-06-15T09:27:05.1420654Z             }
2026-06-15T09:27:05.1420750Z           ]
2026-06-15T09:27:05.1420845Z         },
2026-06-15T09:27:05.1420945Z         "int": {
2026-06-15T09:27:05.1421046Z           "complete": true,
2026-06-15T09:27:05.1421169Z           "evidence": [
2026-06-15T09:27:05.1421264Z             {
2026-06-15T09:27:05.1421423Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T09:27:05.1421526Z               "line": 709
2026-06-15T09:27:05.1421627Z             },
2026-06-15T09:27:05.1421724Z             {
2026-06-15T09:27:05.1421997Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-15T09:27:05.1422101Z               "line": 8
2026-06-15T09:27:05.1422201Z             },
2026-06-15T09:27:05.1422296Z             {
2026-06-15T09:27:05.1422444Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-15T09:27:05.1422543Z               "line": 49
2026-06-15T09:27:05.1422644Z             },
2026-06-15T09:27:05.1422735Z             {
2026-06-15T09:27:05.1422877Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:27:05.1422979Z               "line": 709
2026-06-15T09:27:05.1423078Z             },
2026-06-15T09:27:05.1423279Z             {
2026-06-15T09:27:05.1423426Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:27:05.1423530Z               "line": 1119
2026-06-15T09:27:05.1423637Z             },
2026-06-15T09:27:05.1423736Z             {
2026-06-15T09:27:05.1423884Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-15T09:27:05.1423998Z               "line": 17
2026-06-15T09:27:05.1424093Z             },
2026-06-15T09:27:05.1424194Z             {
2026-06-15T09:27:05.1424337Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-15T09:27:05.1424442Z               "line": 14
2026-06-15T09:27:05.1424543Z             }
2026-06-15T09:27:05.1424638Z           ]
2026-06-15T09:27:05.1424741Z         },
2026-06-15T09:27:05.1424841Z         "unit": {
2026-06-15T09:27:05.1424952Z           "complete": true,
2026-06-15T09:27:05.1425065Z           "evidence": [
2026-06-15T09:27:05.1425160Z             {
2026-06-15T09:27:05.1425309Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T09:27:05.1425413Z               "line": 234
2026-06-15T09:27:05.1425514Z             },
2026-06-15T09:27:05.1425614Z             {
2026-06-15T09:27:05.1425751Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T09:27:05.1425853Z               "line": 267
2026-06-15T09:27:05.1425957Z             },
2026-06-15T09:27:05.1426061Z             {
2026-06-15T09:27:05.1426201Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T09:27:05.1426309Z               "line": 307
2026-06-15T09:27:05.1426409Z             },
2026-06-15T09:27:05.1426506Z             {
2026-06-15T09:27:05.1426652Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T09:27:05.1426758Z               "line": 571
2026-06-15T09:27:05.1426864Z             },
2026-06-15T09:27:05.1426967Z             {
2026-06-15T09:27:05.1427105Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T09:27:05.1427214Z               "line": 644
2026-06-15T09:27:05.1427303Z             },
2026-06-15T09:27:05.1427417Z             {
2026-06-15T09:27:05.1427557Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T09:27:05.1427660Z               "line": 788
2026-06-15T09:27:05.1427761Z             },
2026-06-15T09:27:05.1427861Z             {
2026-06-15T09:27:05.1427998Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:27:05.1428109Z               "line": 595
2026-06-15T09:27:05.1428214Z             },
2026-06-15T09:27:05.1428313Z             {
2026-06-15T09:27:05.1428462Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T09:27:05.1428562Z               "line": 399
2026-06-15T09:27:05.1428662Z             },
2026-06-15T09:27:05.1428758Z             {
2026-06-15T09:27:05.1428886Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1429097Z               "line": 7236
2026-06-15T09:27:05.1429200Z             },
2026-06-15T09:27:05.1429296Z             {
2026-06-15T09:27:05.1429421Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1429534Z               "line": 7560
2026-06-15T09:27:05.1429645Z             },
2026-06-15T09:27:05.1429746Z             {
2026-06-15T09:27:05.1429877Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1429986Z               "line": 7977
2026-06-15T09:27:05.1430086Z             }
2026-06-15T09:27:05.1430289Z           ]
2026-06-15T09:27:05.1430385Z         }
2026-06-15T09:27:05.1430485Z       }
2026-06-15T09:27:05.1430580Z     },
2026-06-15T09:27:05.1430681Z     {
2026-06-15T09:27:05.1430786Z       "id": "REQ-SHELL-2",
2026-06-15T09:27:05.1432396Z       "title": "Shell sleep/wake: link-break always closes the binary (pre-close instruction + termination timeout), ephemeral teardown vs persistent offline/relink, wake_command wake-watcher (offline-only, exit-opcode supervision, exponential backoff + give-up), state-keyed wake resolution (dormant/suspended/active-elsewhere; no-reachable refuses — spawn-anywhere branch deferred), spt shutdown owner cascade + api owner-shutdown gated by can_shutdown (CONTEXT Shell sleep/wake)",
2026-06-15T09:27:05.1432634Z       "requiredStages": [
2026-06-15T09:27:05.1432737Z         "impl",
2026-06-15T09:27:05.1432846Z         "unit",
2026-06-15T09:27:05.1432942Z         "int"
2026-06-15T09:27:05.1433046Z       ],
2026-06-15T09:27:05.1433146Z       "stages": {
2026-06-15T09:27:05.1433252Z         "doc": {
2026-06-15T09:27:05.1433375Z           "complete": false,
2026-06-15T09:27:05.1433490Z           "evidence": []
2026-06-15T09:27:05.1433595Z         },
2026-06-15T09:27:05.1433695Z         "impl": {
2026-06-15T09:27:05.1433815Z           "complete": true,
2026-06-15T09:27:05.1433924Z           "evidence": [
2026-06-15T09:27:05.1434024Z             {
2026-06-15T09:27:05.1434178Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:27:05.1434286Z               "line": 214
2026-06-15T09:27:05.1434372Z             },
2026-06-15T09:27:05.1434473Z             {
2026-06-15T09:27:05.1434615Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T09:27:05.1434734Z               "line": 403
2026-06-15T09:27:05.1434832Z             },
2026-06-15T09:27:05.1434929Z             {
2026-06-15T09:27:05.1435069Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T09:27:05.1435184Z               "line": 250
2026-06-15T09:27:05.1435282Z             },
2026-06-15T09:27:05.1435386Z             {
2026-06-15T09:27:05.1435540Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:27:05.1435649Z               "line": 353
2026-06-15T09:27:05.1435749Z             },
2026-06-15T09:27:05.1435850Z             {
2026-06-15T09:27:05.1435992Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T09:27:05.1436094Z               "line": 30
2026-06-15T09:27:05.1436198Z             },
2026-06-15T09:27:05.1436297Z             {
2026-06-15T09:27:05.1436441Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T09:27:05.1436555Z               "line": 152
2026-06-15T09:27:05.1436655Z             },
2026-06-15T09:27:05.1436756Z             {
2026-06-15T09:27:05.1436903Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T09:27:05.1436999Z               "line": 188
2026-06-15T09:27:05.1437099Z             },
2026-06-15T09:27:05.1437199Z             {
2026-06-15T09:27:05.1437347Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T09:27:05.1437457Z               "line": 347
2026-06-15T09:27:05.1437560Z             },
2026-06-15T09:27:05.1437665Z             {
2026-06-15T09:27:05.1437797Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:27:05.1437906Z               "line": 348
2026-06-15T09:27:05.1438001Z             },
2026-06-15T09:27:05.1438092Z             {
2026-06-15T09:27:05.1438234Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T09:27:05.1438350Z               "line": 115
2026-06-15T09:27:05.1438455Z             },
2026-06-15T09:27:05.1438554Z             {
2026-06-15T09:27:05.1438703Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T09:27:05.1438816Z               "line": 120
2026-06-15T09:27:05.1438912Z             },
2026-06-15T09:27:05.1439117Z             {
2026-06-15T09:27:05.1439265Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T09:27:05.1439379Z               "line": 363
2026-06-15T09:27:05.1439580Z             },
2026-06-15T09:27:05.1439680Z             {
2026-06-15T09:27:05.1439818Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T09:27:05.1439924Z               "line": 472
2026-06-15T09:27:05.1440023Z             },
2026-06-15T09:27:05.1440124Z             {
2026-06-15T09:27:05.1440267Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T09:27:05.1440371Z               "line": 24
2026-06-15T09:27:05.1440470Z             },
2026-06-15T09:27:05.1440566Z             {
2026-06-15T09:27:05.1440702Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T09:27:05.1440801Z               "line": 76
2026-06-15T09:27:05.1441003Z             },
2026-06-15T09:27:05.1441101Z             {
2026-06-15T09:27:05.1441246Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T09:27:05.1441355Z               "line": 154
2026-06-15T09:27:05.1441454Z             },
2026-06-15T09:27:05.1441556Z             {
2026-06-15T09:27:05.1441708Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T09:27:05.1441822Z               "line": 177
2026-06-15T09:27:05.1441918Z             },
2026-06-15T09:27:05.1442018Z             {
2026-06-15T09:27:05.1442162Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T09:27:05.1442266Z               "line": 273
2026-06-15T09:27:05.1442361Z             },
2026-06-15T09:27:05.1442467Z             {
2026-06-15T09:27:05.1442608Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T09:27:05.1442714Z               "line": 455
2026-06-15T09:27:05.1442810Z             },
2026-06-15T09:27:05.1442910Z             {
2026-06-15T09:27:05.1443055Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T09:27:05.1443161Z               "line": 537
2026-06-15T09:27:05.1443250Z             },
2026-06-15T09:27:05.1443349Z             {
2026-06-15T09:27:05.1443502Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-15T09:27:05.1443611Z               "line": 27
2026-06-15T09:27:05.1443716Z             },
2026-06-15T09:27:05.1443817Z             {
2026-06-15T09:27:05.1443969Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-15T09:27:05.1444079Z               "line": 43
2026-06-15T09:27:05.1444179Z             },
2026-06-15T09:27:05.1444278Z             {
2026-06-15T09:27:05.1444413Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:27:05.1444517Z               "line": 393
2026-06-15T09:27:05.1444612Z             },
2026-06-15T09:27:05.1444718Z             {
2026-06-15T09:27:05.1444851Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1444951Z               "line": 1670
2026-06-15T09:27:05.1445062Z             },
2026-06-15T09:27:05.1445161Z             {
2026-06-15T09:27:05.1445290Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1445392Z               "line": 5468
2026-06-15T09:27:05.1445494Z             },
2026-06-15T09:27:05.1445595Z             {
2026-06-15T09:27:05.1445721Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1445832Z               "line": 5529
2026-06-15T09:27:05.1445932Z             },
2026-06-15T09:27:05.1446033Z             {
2026-06-15T09:27:05.1446157Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1446266Z               "line": 5557
2026-06-15T09:27:05.1446363Z             },
2026-06-15T09:27:05.1446458Z             {
2026-06-15T09:27:05.1446576Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1446678Z               "line": 5611
2026-06-15T09:27:05.1446777Z             },
2026-06-15T09:27:05.1446881Z             {
2026-06-15T09:27:05.1447002Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1447120Z               "line": 5727
2026-06-15T09:27:05.1447215Z             },
2026-06-15T09:27:05.1447317Z             {
2026-06-15T09:27:05.1447439Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1447549Z               "line": 5780
2026-06-15T09:27:05.1447650Z             },
2026-06-15T09:27:05.1447816Z             {
2026-06-15T09:27:05.1447956Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T09:27:05.1448059Z               "line": 298
2026-06-15T09:27:05.1448158Z             },
2026-06-15T09:27:05.1448259Z             {
2026-06-15T09:27:05.1448395Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T09:27:05.1448504Z               "line": 339
2026-06-15T09:27:05.1448604Z             }
2026-06-15T09:27:05.1448700Z           ]
2026-06-15T09:27:05.1448799Z         },
2026-06-15T09:27:05.1448910Z         "int": {
2026-06-15T09:27:05.1449100Z           "complete": true,
2026-06-15T09:27:05.1449211Z           "evidence": [
2026-06-15T09:27:05.1449415Z             {
2026-06-15T09:27:05.1449559Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T09:27:05.1449658Z               "line": 702
2026-06-15T09:27:05.1449758Z             },
2026-06-15T09:27:05.1449860Z             {
2026-06-15T09:27:05.1450002Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:27:05.1450126Z               "line": 709
2026-06-15T09:27:05.1450226Z             },
2026-06-15T09:27:05.1450325Z             {
2026-06-15T09:27:05.1450475Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:27:05.1450583Z               "line": 1119
2026-06-15T09:27:05.1450679Z             },
2026-06-15T09:27:05.1450784Z             {
2026-06-15T09:27:05.1450940Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-15T09:27:05.1451049Z               "line": 18
2026-06-15T09:27:05.1451154Z             }
2026-06-15T09:27:05.1451253Z           ]
2026-06-15T09:27:05.1451347Z         },
2026-06-15T09:27:05.1451462Z         "unit": {
2026-06-15T09:27:05.1451568Z           "complete": true,
2026-06-15T09:27:05.1451685Z           "evidence": [
2026-06-15T09:27:05.1451787Z             {
2026-06-15T09:27:05.1451929Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T09:27:05.1452029Z               "line": 431
2026-06-15T09:27:05.1452135Z             },
2026-06-15T09:27:05.1452235Z             {
2026-06-15T09:27:05.1452372Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:27:05.1452474Z               "line": 796
2026-06-15T09:27:05.1452578Z             },
2026-06-15T09:27:05.1452673Z             {
2026-06-15T09:27:05.1452821Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T09:27:05.1452921Z               "line": 677
2026-06-15T09:27:05.1453022Z             },
2026-06-15T09:27:05.1453122Z             {
2026-06-15T09:27:05.1453259Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T09:27:05.1453375Z               "line": 726
2026-06-15T09:27:05.1453470Z             },
2026-06-15T09:27:05.1453578Z             {
2026-06-15T09:27:05.1453716Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T09:27:05.1453824Z               "line": 750
2026-06-15T09:27:05.1453919Z             },
2026-06-15T09:27:05.1454014Z             {
2026-06-15T09:27:05.1454158Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T09:27:05.1454257Z               "line": 602
2026-06-15T09:27:05.1454359Z             },
2026-06-15T09:27:05.1454459Z             {
2026-06-15T09:27:05.1454600Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T09:27:05.1454716Z               "line": 623
2026-06-15T09:27:05.1454811Z             },
2026-06-15T09:27:05.1454915Z             {
2026-06-15T09:27:05.1455054Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T09:27:05.1455168Z               "line": 659
2026-06-15T09:27:05.1455259Z             },
2026-06-15T09:27:05.1455360Z             {
2026-06-15T09:27:05.1455511Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T09:27:05.1455617Z               "line": 713
2026-06-15T09:27:05.1455717Z             },
2026-06-15T09:27:05.1455816Z             {
2026-06-15T09:27:05.1455961Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T09:27:05.1456073Z               "line": 731
2026-06-15T09:27:05.1456300Z             },
2026-06-15T09:27:05.1456407Z             {
2026-06-15T09:27:05.1456550Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T09:27:05.1456661Z               "line": 765
2026-06-15T09:27:05.1456759Z             },
2026-06-15T09:27:05.1456860Z             {
2026-06-15T09:27:05.1456999Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T09:27:05.1457108Z               "line": 840
2026-06-15T09:27:05.1457209Z             },
2026-06-15T09:27:05.1457308Z             {
2026-06-15T09:27:05.1457460Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-15T09:27:05.1457642Z               "line": 80
2026-06-15T09:27:05.1457746Z             },
2026-06-15T09:27:05.1457843Z             {
2026-06-15T09:27:05.1457976Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1458085Z               "line": 6490
2026-06-15T09:27:05.1458187Z             },
2026-06-15T09:27:05.1458295Z             {
2026-06-15T09:27:05.1458419Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1458535Z               "line": 7314
2026-06-15T09:27:05.1458633Z             },
2026-06-15T09:27:05.1458737Z             {
2026-06-15T09:27:05.1458862Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1459044Z               "line": 7384
2026-06-15T09:27:05.1459136Z             },
2026-06-15T09:27:05.1459232Z             {
2026-06-15T09:27:05.1459355Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1459451Z               "line": 7422
2026-06-15T09:27:05.1459556Z             }
2026-06-15T09:27:05.1459655Z           ]
2026-06-15T09:27:05.1459756Z         }
2026-06-15T09:27:05.1459856Z       }
2026-06-15T09:27:05.1459951Z     },
2026-06-15T09:27:05.1460047Z     {
2026-06-15T09:27:05.1460161Z       "id": "REQ-START-1",
2026-06-15T09:27:05.1460376Z       "title": "Adapters never resolve SPT_HOME; binary on PATH; api bridging only",
2026-06-15T09:27:05.1460490Z       "requiredStages": [
2026-06-15T09:27:05.1460590Z         "impl",
2026-06-15T09:27:05.1460691Z         "unit"
2026-06-15T09:27:05.1460791Z       ],
2026-06-15T09:27:05.1460895Z       "stages": {
2026-06-15T09:27:05.1460991Z         "doc": {
2026-06-15T09:27:05.1463729Z           "complete": false,
2026-06-15T09:27:05.1463853Z           "evidence": []
2026-06-15T09:27:05.1463954Z         },
2026-06-15T09:27:05.1464053Z         "impl": {
2026-06-15T09:27:05.1464171Z           "complete": true,
2026-06-15T09:27:05.1464267Z           "evidence": [
2026-06-15T09:27:05.1464370Z             {
2026-06-15T09:27:05.1464512Z               "path": "crates/spt-store/src/seed.rs",
2026-06-15T09:27:05.1464623Z               "line": 16
2026-06-15T09:27:05.1464737Z             }
2026-06-15T09:27:05.1464841Z           ]
2026-06-15T09:27:05.1464938Z         },
2026-06-15T09:27:05.1465042Z         "int": {
2026-06-15T09:27:05.1465142Z           "complete": false,
2026-06-15T09:27:05.1465257Z           "evidence": []
2026-06-15T09:27:05.1465357Z         },
2026-06-15T09:27:05.1465466Z         "unit": {
2026-06-15T09:27:05.1465586Z           "complete": true,
2026-06-15T09:27:05.1465691Z           "evidence": [
2026-06-15T09:27:05.1465795Z             {
2026-06-15T09:27:05.1465934Z               "path": "crates/spt-store/src/seed.rs",
2026-06-15T09:27:05.1466043Z               "line": 43
2026-06-15T09:27:05.1466144Z             },
2026-06-15T09:27:05.1466244Z             {
2026-06-15T09:27:05.1466381Z               "path": "crates/spt-store/src/seed.rs",
2026-06-15T09:27:05.1466483Z               "line": 59
2026-06-15T09:27:05.1466587Z             }
2026-06-15T09:27:05.1466682Z           ]
2026-06-15T09:27:05.1466784Z         }
2026-06-15T09:27:05.1466883Z       }
2026-06-15T09:27:05.1466976Z     },
2026-06-15T09:27:05.1467076Z     {
2026-06-15T09:27:05.1467187Z       "id": "REQ-START-2",
2026-06-15T09:27:05.1467363Z       "title": "Harness-hosted startup: api seed then listen",
2026-06-15T09:27:05.1467478Z       "requiredStages": [
2026-06-15T09:27:05.1467720Z         "impl",
2026-06-15T09:27:05.1467822Z         "unit",
2026-06-15T09:27:05.1467917Z         "int"
2026-06-15T09:27:05.1468011Z       ],
2026-06-15T09:27:05.1468112Z       "stages": {
2026-06-15T09:27:05.1468216Z         "doc": {
2026-06-15T09:27:05.1468331Z           "complete": false,
2026-06-15T09:27:05.1468442Z           "evidence": []
2026-06-15T09:27:05.1468545Z         },
2026-06-15T09:27:05.1468645Z         "impl": {
2026-06-15T09:27:05.1468756Z           "complete": true,
2026-06-15T09:27:05.1468850Z           "evidence": [
2026-06-15T09:27:05.1469038Z             {
2026-06-15T09:27:05.1469174Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:27:05.1469388Z               "line": 16
2026-06-15T09:27:05.1469487Z             },
2026-06-15T09:27:05.1469591Z             {
2026-06-15T09:27:05.1469730Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:27:05.1469830Z               "line": 100
2026-06-15T09:27:05.1469934Z             },
2026-06-15T09:27:05.1470035Z             {
2026-06-15T09:27:05.1470177Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:27:05.1470287Z               "line": 240
2026-06-15T09:27:05.1470383Z             }
2026-06-15T09:27:05.1470487Z           ]
2026-06-15T09:27:05.1470587Z         },
2026-06-15T09:27:05.1470684Z         "int": {
2026-06-15T09:27:05.1470798Z           "complete": true,
2026-06-15T09:27:05.1470912Z           "evidence": [
2026-06-15T09:27:05.1471008Z             {
2026-06-15T09:27:05.1471145Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T09:27:05.1471256Z               "line": 186
2026-06-15T09:27:05.1471356Z             }
2026-06-15T09:27:05.1471465Z           ]
2026-06-15T09:27:05.1471561Z         },
2026-06-15T09:27:05.1471662Z         "unit": {
2026-06-15T09:27:05.1471770Z           "complete": true,
2026-06-15T09:27:05.1471871Z           "evidence": [
2026-06-15T09:27:05.1471972Z             {
2026-06-15T09:27:05.1472108Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:27:05.1472222Z               "line": 468
2026-06-15T09:27:05.1472322Z             },
2026-06-15T09:27:05.1472420Z             {
2026-06-15T09:27:05.1472563Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:27:05.1472664Z               "line": 501
2026-06-15T09:27:05.1472763Z             }
2026-06-15T09:27:05.1472849Z           ]
2026-06-15T09:27:05.1472940Z         }
2026-06-15T09:27:05.1473035Z       }
2026-06-15T09:27:05.1473130Z     },
2026-06-15T09:27:05.1473232Z     {
2026-06-15T09:27:05.1473346Z       "id": "REQ-START-3",
2026-06-15T09:27:05.1473561Z       "title": "spt-hosted startup: spawn-session then api bind (no file)",
2026-06-15T09:27:05.1473679Z       "requiredStages": [
2026-06-15T09:27:05.1473774Z         "impl",
2026-06-15T09:27:05.1473876Z         "unit",
2026-06-15T09:27:05.1473979Z         "int"
2026-06-15T09:27:05.1474075Z       ],
2026-06-15T09:27:05.1474171Z       "stages": {
2026-06-15T09:27:05.1474261Z         "doc": {
2026-06-15T09:27:05.1474371Z           "complete": false,
2026-06-15T09:27:05.1474472Z           "evidence": []
2026-06-15T09:27:05.1474571Z         },
2026-06-15T09:27:05.1474670Z         "impl": {
2026-06-15T09:27:05.1474784Z           "complete": true,
2026-06-15T09:27:05.1474884Z           "evidence": [
2026-06-15T09:27:05.1474978Z             {
2026-06-15T09:27:05.1475120Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T09:27:05.1475216Z               "line": 23
2026-06-15T09:27:05.1475321Z             },
2026-06-15T09:27:05.1475411Z             {
2026-06-15T09:27:05.1475555Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T09:27:05.1475654Z               "line": 205
2026-06-15T09:27:05.1475755Z             },
2026-06-15T09:27:05.1475850Z             {
2026-06-15T09:27:05.1476006Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T09:27:05.1476103Z               "line": 221
2026-06-15T09:27:05.1476203Z             },
2026-06-15T09:27:05.1476298Z             {
2026-06-15T09:27:05.1476537Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:27:05.1476646Z               "line": 17
2026-06-15T09:27:05.1476743Z             },
2026-06-15T09:27:05.1476847Z             {
2026-06-15T09:27:05.1476985Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:27:05.1477086Z               "line": 43
2026-06-15T09:27:05.1477190Z             },
2026-06-15T09:27:05.1477275Z             {
2026-06-15T09:27:05.1477410Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:27:05.1477513Z               "line": 101
2026-06-15T09:27:05.1477608Z             }
2026-06-15T09:27:05.1477708Z           ]
2026-06-15T09:27:05.1477884Z         },
2026-06-15T09:27:05.1477985Z         "int": {
2026-06-15T09:27:05.1478086Z           "complete": true,
2026-06-15T09:27:05.1478195Z           "evidence": [
2026-06-15T09:27:05.1478295Z             {
2026-06-15T09:27:05.1478433Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T09:27:05.1478537Z               "line": 440
2026-06-15T09:27:05.1478639Z             }
2026-06-15T09:27:05.1478739Z           ]
2026-06-15T09:27:05.1478839Z         },
2026-06-15T09:27:05.1479035Z         "unit": {
2026-06-15T09:27:05.1479144Z           "complete": true,
2026-06-15T09:27:05.1479249Z           "evidence": [
2026-06-15T09:27:05.1479350Z             {
2026-06-15T09:27:05.1479496Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T09:27:05.1479603Z               "line": 331
2026-06-15T09:27:05.1479707Z             },
2026-06-15T09:27:05.1479806Z             {
2026-06-15T09:27:05.1479934Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T09:27:05.1480047Z               "line": 352
2026-06-15T09:27:05.1480151Z             },
2026-06-15T09:27:05.1480247Z             {
2026-06-15T09:27:05.1480381Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T09:27:05.1480499Z               "line": 362
2026-06-15T09:27:05.1480610Z             },
2026-06-15T09:27:05.1480705Z             {
2026-06-15T09:27:05.1480852Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:27:05.1480962Z               "line": 469
2026-06-15T09:27:05.1481062Z             },
2026-06-15T09:27:05.1481157Z             {
2026-06-15T09:27:05.1481291Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:27:05.1481391Z               "line": 502
2026-06-15T09:27:05.1481491Z             },
2026-06-15T09:27:05.1481592Z             {
2026-06-15T09:27:05.1481729Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:27:05.1481831Z               "line": 510
2026-06-15T09:27:05.1481930Z             }
2026-06-15T09:27:05.1482025Z           ]
2026-06-15T09:27:05.1482136Z         }
2026-06-15T09:27:05.1482227Z       }
2026-06-15T09:27:05.1482320Z     },
2026-06-15T09:27:05.1482421Z     {
2026-06-15T09:27:05.1482527Z       "id": "REQ-START-4",
2026-06-15T09:27:05.1482706Z       "title": "Adapter-injected env aliases (SPT/OWL/LIVE)",
2026-06-15T09:27:05.1482854Z       "requiredStages": [
2026-06-15T09:27:05.1482956Z         "impl",
2026-06-15T09:27:05.1483060Z         "unit"
2026-06-15T09:27:05.1483162Z       ],
2026-06-15T09:27:05.1483276Z       "stages": {
2026-06-15T09:27:05.1483380Z         "doc": {
2026-06-15T09:27:05.1483500Z           "complete": false,
2026-06-15T09:27:05.1483614Z           "evidence": []
2026-06-15T09:27:05.1483714Z         },
2026-06-15T09:27:05.1483811Z         "impl": {
2026-06-15T09:27:05.1483924Z           "complete": true,
2026-06-15T09:27:05.1484029Z           "evidence": [
2026-06-15T09:27:05.1484130Z             {
2026-06-15T09:27:05.1484277Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:27:05.1484392Z               "line": 461
2026-06-15T09:27:05.1484492Z             }
2026-06-15T09:27:05.1484592Z           ]
2026-06-15T09:27:05.1484693Z         },
2026-06-15T09:27:05.1484788Z         "int": {
2026-06-15T09:27:05.1484902Z           "complete": false,
2026-06-15T09:27:05.1485017Z           "evidence": []
2026-06-15T09:27:05.1485225Z         },
2026-06-15T09:27:05.1485325Z         "unit": {
2026-06-15T09:27:05.1485439Z           "complete": true,
2026-06-15T09:27:05.1485562Z           "evidence": [
2026-06-15T09:27:05.1485657Z             {
2026-06-15T09:27:05.1485829Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:27:05.1485957Z               "line": 900
2026-06-15T09:27:05.1486058Z             }
2026-06-15T09:27:05.1486158Z           ]
2026-06-15T09:27:05.1486257Z         }
2026-06-15T09:27:05.1486358Z       }
2026-06-15T09:27:05.1486458Z     },
2026-06-15T09:27:05.1486562Z     {
2026-06-15T09:27:05.1486678Z       "id": "REQ-STORE-1",
2026-06-15T09:27:05.1487613Z       "title": "spt-store::BranchStore (git branch as versioned KV; commit=checkpoint/tip=resume, atomic multi-key, merge-native sync) is the substrate for coarse/durable/audited state (context, registry snapshot+distribution, daemon checkpoint); hot paths (B5 fsync journal) + indexed queries (SQLite spool) excluded (ADR-0011)",
2026-06-15T09:27:05.1487865Z       "requiredStages": [
2026-06-15T09:27:05.1487970Z         "impl",
2026-06-15T09:27:05.1488073Z         "unit"
2026-06-15T09:27:05.1488173Z       ],
2026-06-15T09:27:05.1488274Z       "stages": {
2026-06-15T09:27:05.1488379Z         "doc": {
2026-06-15T09:27:05.1488483Z           "complete": false,
2026-06-15T09:27:05.1488593Z           "evidence": []
2026-06-15T09:27:05.1488694Z         },
2026-06-15T09:27:05.1488797Z         "impl": {
2026-06-15T09:27:05.1488918Z           "complete": true,
2026-06-15T09:27:05.1489103Z           "evidence": [
2026-06-15T09:27:05.1489204Z             {
2026-06-15T09:27:05.1489366Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T09:27:05.1489480Z               "line": 23
2026-06-15T09:27:05.1489576Z             },
2026-06-15T09:27:05.1489680Z             {
2026-06-15T09:27:05.1489829Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T09:27:05.1489929Z               "line": 46
2026-06-15T09:27:05.1490033Z             },
2026-06-15T09:27:05.1490138Z             {
2026-06-15T09:27:05.1490290Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T09:27:05.1490394Z               "line": 97
2026-06-15T09:27:05.1490495Z             },
2026-06-15T09:27:05.1490594Z             {
2026-06-15T09:27:05.1490740Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T09:27:05.1490850Z               "line": 125
2026-06-15T09:27:05.1490950Z             },
2026-06-15T09:27:05.1491050Z             {
2026-06-15T09:27:05.1491194Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T09:27:05.1491298Z               "line": 181
2026-06-15T09:27:05.1491412Z             },
2026-06-15T09:27:05.1491514Z             {
2026-06-15T09:27:05.1491650Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T09:27:05.1491757Z               "line": 205
2026-06-15T09:27:05.1491852Z             },
2026-06-15T09:27:05.1491956Z             {
2026-06-15T09:27:05.1492104Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T09:27:05.1492213Z               "line": 441
2026-06-15T09:27:05.1492313Z             },
2026-06-15T09:27:05.1492415Z             {
2026-06-15T09:27:05.1492566Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:27:05.1492667Z               "line": 25
2026-06-15T09:27:05.1492768Z             },
2026-06-15T09:27:05.1492866Z             {
2026-06-15T09:27:05.1493020Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:27:05.1493125Z               "line": 120
2026-06-15T09:27:05.1493223Z             },
2026-06-15T09:27:05.1493318Z             {
2026-06-15T09:27:05.1493475Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:27:05.1493583Z               "line": 148
2026-06-15T09:27:05.1493679Z             },
2026-06-15T09:27:05.1493784Z             {
2026-06-15T09:27:05.1493926Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:27:05.1494042Z               "line": 165
2026-06-15T09:27:05.1494246Z             },
2026-06-15T09:27:05.1494357Z             {
2026-06-15T09:27:05.1494508Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:27:05.1494604Z               "line": 180
2026-06-15T09:27:05.1494705Z             },
2026-06-15T09:27:05.1494800Z             {
2026-06-15T09:27:05.1494943Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:27:05.1495043Z               "line": 198
2026-06-15T09:27:05.1495143Z             },
2026-06-15T09:27:05.1495248Z             {
2026-06-15T09:27:05.1495386Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:27:05.1495495Z               "line": 207
2026-06-15T09:27:05.1495691Z             },
2026-06-15T09:27:05.1495800Z             {
2026-06-15T09:27:05.1495943Z               "path": "crates/spt-store/src/project.rs",
2026-06-15T09:27:05.1496050Z               "line": 16
2026-06-15T09:27:05.1496145Z             },
2026-06-15T09:27:05.1496245Z             {
2026-06-15T09:27:05.1496398Z               "path": "crates/spt-store/src/project.rs",
2026-06-15T09:27:05.1496502Z               "line": 63
2026-06-15T09:27:05.1496609Z             }
2026-06-15T09:27:05.1496699Z           ]
2026-06-15T09:27:05.1496794Z         },
2026-06-15T09:27:05.1496900Z         "int": {
2026-06-15T09:27:05.1497014Z           "complete": false,
2026-06-15T09:27:05.1497118Z           "evidence": []
2026-06-15T09:27:05.1497219Z         },
2026-06-15T09:27:05.1497323Z         "unit": {
2026-06-15T09:27:05.1497433Z           "complete": true,
2026-06-15T09:27:05.1497549Z           "evidence": [
2026-06-15T09:27:05.1497647Z             {
2026-06-15T09:27:05.1497805Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T09:27:05.1497924Z               "line": 558
2026-06-15T09:27:05.1498014Z             },
2026-06-15T09:27:05.1498120Z             {
2026-06-15T09:27:05.1498262Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T09:27:05.1498372Z               "line": 568
2026-06-15T09:27:05.1498478Z             },
2026-06-15T09:27:05.1498577Z             {
2026-06-15T09:27:05.1498728Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T09:27:05.1498825Z               "line": 590
2026-06-15T09:27:05.1498925Z             },
2026-06-15T09:27:05.1499110Z             {
2026-06-15T09:27:05.1499259Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T09:27:05.1499367Z               "line": 606
2026-06-15T09:27:05.1499464Z             },
2026-06-15T09:27:05.1499559Z             {
2026-06-15T09:27:05.1499706Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T09:27:05.1499807Z               "line": 629
2026-06-15T09:27:05.1499911Z             },
2026-06-15T09:27:05.1500006Z             {
2026-06-15T09:27:05.1500155Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:27:05.1500260Z               "line": 472
2026-06-15T09:27:05.1500360Z             },
2026-06-15T09:27:05.1500451Z             {
2026-06-15T09:27:05.1500612Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:27:05.1500728Z               "line": 507
2026-06-15T09:27:05.1500831Z             },
2026-06-15T09:27:05.1500930Z             {
2026-06-15T09:27:05.1501074Z               "path": "crates/spt-store/src/project.rs",
2026-06-15T09:27:05.1501196Z               "line": 120
2026-06-15T09:27:05.1501295Z             },
2026-06-15T09:27:05.1501400Z             {
2026-06-15T09:27:05.1501539Z               "path": "crates/spt-store/src/project.rs",
2026-06-15T09:27:05.1501639Z               "line": 128
2026-06-15T09:27:05.1501745Z             }
2026-06-15T09:27:05.1501844Z           ]
2026-06-15T09:27:05.1501953Z         }
2026-06-15T09:27:05.1502045Z       }
2026-06-15T09:27:05.1502149Z     },
2026-06-15T09:27:05.1502248Z     {
2026-06-15T09:27:05.1502355Z       "id": "REQ-SUBNET-1",
2026-06-15T09:27:05.1502717Z       "title": "spt subnet noun namespace: status view (bare + status [NAME] [--nodes]), create (QR/otpauth), show-code; spt pair deleted",
2026-06-15T09:27:05.1502936Z       "requiredStages": [
2026-06-15T09:27:05.1503037Z         "impl",
2026-06-15T09:27:05.1503136Z         "unit"
2026-06-15T09:27:05.1503232Z       ],
2026-06-15T09:27:05.1503337Z       "stages": {
2026-06-15T09:27:05.1503436Z         "doc": {
2026-06-15T09:27:05.1503552Z           "complete": false,
2026-06-15T09:27:05.1503647Z           "evidence": []
2026-06-15T09:27:05.1503746Z         },
2026-06-15T09:27:05.1503845Z         "impl": {
2026-06-15T09:27:05.1503964Z           "complete": true,
2026-06-15T09:27:05.1504077Z           "evidence": [
2026-06-15T09:27:05.1504177Z             {
2026-06-15T09:27:05.1504443Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:05.1504549Z               "line": 281
2026-06-15T09:27:05.1504645Z             },
2026-06-15T09:27:05.1504740Z             {
2026-06-15T09:27:05.1504902Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:05.1505012Z               "line": 599
2026-06-15T09:27:05.1505120Z             },
2026-06-15T09:27:05.1505222Z             {
2026-06-15T09:27:05.1505355Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1505469Z               "line": 2959
2026-06-15T09:27:05.1505566Z             },
2026-06-15T09:27:05.1505664Z             {
2026-06-15T09:27:05.1505789Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1505899Z               "line": 3269
2026-06-15T09:27:05.1506002Z             },
2026-06-15T09:27:05.1506099Z             {
2026-06-15T09:27:05.1506238Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1506331Z               "line": 3288
2026-06-15T09:27:05.1506450Z             },
2026-06-15T09:27:05.1506555Z             {
2026-06-15T09:27:05.1506677Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1506777Z               "line": 3352
2026-06-15T09:27:05.1506878Z             },
2026-06-15T09:27:05.1506977Z             {
2026-06-15T09:27:05.1507101Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1507207Z               "line": 3394
2026-06-15T09:27:05.1507301Z             },
2026-06-15T09:27:05.1507406Z             {
2026-06-15T09:27:05.1507530Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1507635Z               "line": 3583
2026-06-15T09:27:05.1507741Z             },
2026-06-15T09:27:05.1507841Z             {
2026-06-15T09:27:05.1507964Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1508065Z               "line": 3653
2026-06-15T09:27:05.1508160Z             },
2026-06-15T09:27:05.1508265Z             {
2026-06-15T09:27:05.1508385Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1508503Z               "line": 3877
2026-06-15T09:27:05.1508603Z             },
2026-06-15T09:27:05.1508709Z             {
2026-06-15T09:27:05.1508836Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1508937Z               "line": 4514
2026-06-15T09:27:05.1509124Z             },
2026-06-15T09:27:05.1509222Z             {
2026-06-15T09:27:05.1509370Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T09:27:05.1509476Z               "line": 418
2026-06-15T09:27:05.1509580Z             }
2026-06-15T09:27:05.1509675Z           ]
2026-06-15T09:27:05.1509776Z         },
2026-06-15T09:27:05.1509880Z         "int": {
2026-06-15T09:27:05.1509995Z           "complete": false,
2026-06-15T09:27:05.1510109Z           "evidence": []
2026-06-15T09:27:05.1510214Z         },
2026-06-15T09:27:05.1510314Z         "unit": {
2026-06-15T09:27:05.1510429Z           "complete": true,
2026-06-15T09:27:05.1510533Z           "evidence": [
2026-06-15T09:27:05.1510634Z             {
2026-06-15T09:27:05.1510796Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:05.1510910Z               "line": 1477
2026-06-15T09:27:05.1511011Z             },
2026-06-15T09:27:05.1511110Z             {
2026-06-15T09:27:05.1511239Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1511458Z               "line": 8224
2026-06-15T09:27:05.1511557Z             },
2026-06-15T09:27:05.1511662Z             {
2026-06-15T09:27:05.1511789Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1511903Z               "line": 8394
2026-06-15T09:27:05.1511995Z             },
2026-06-15T09:27:05.1512104Z             {
2026-06-15T09:27:05.1512222Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1512338Z               "line": 8401
2026-06-15T09:27:05.1512437Z             },
2026-06-15T09:27:05.1512547Z             {
2026-06-15T09:27:05.1512667Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1512771Z               "line": 8454
2026-06-15T09:27:05.1512972Z             },
2026-06-15T09:27:05.1513062Z             {
2026-06-15T09:27:05.1513191Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1513296Z               "line": 8471
2026-06-15T09:27:05.1513401Z             },
2026-06-15T09:27:05.1513501Z             {
2026-06-15T09:27:05.1513625Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1513730Z               "line": 8501
2026-06-15T09:27:05.1513831Z             },
2026-06-15T09:27:05.1513930Z             {
2026-06-15T09:27:05.1514054Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1514170Z               "line": 8600
2026-06-15T09:27:05.1514273Z             },
2026-06-15T09:27:05.1514367Z             {
2026-06-15T09:27:05.1514497Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1514595Z               "line": 8751
2026-06-15T09:27:05.1514693Z             }
2026-06-15T09:27:05.1514785Z           ]
2026-06-15T09:27:05.1514890Z         }
2026-06-15T09:27:05.1515004Z       }
2026-06-15T09:27:05.1515094Z     },
2026-06-15T09:27:05.1515196Z     {
2026-06-15T09:27:05.1515309Z       "id": "REQ-SUBNET-2",
2026-06-15T09:27:05.1515582Z       "title": "Guided join e2e: spt subnet join CLI initiator + always-on daemon pairing responder",
2026-06-15T09:27:05.1515695Z       "requiredStages": [
2026-06-15T09:27:05.1515796Z         "impl",
2026-06-15T09:27:05.1515900Z         "unit",
2026-06-15T09:27:05.1516000Z         "int"
2026-06-15T09:27:05.1516106Z       ],
2026-06-15T09:27:05.1516206Z       "stages": {
2026-06-15T09:27:05.1516310Z         "doc": {
2026-06-15T09:27:05.1516421Z           "complete": true,
2026-06-15T09:27:05.1516530Z           "evidence": [
2026-06-15T09:27:05.1516635Z             {
2026-06-15T09:27:05.1516826Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-15T09:27:05.1516944Z               "line": 60
2026-06-15T09:27:05.1517044Z             }
2026-06-15T09:27:05.1517139Z           ]
2026-06-15T09:27:05.1517227Z         },
2026-06-15T09:27:05.1517337Z         "impl": {
2026-06-15T09:27:05.1517447Z           "complete": true,
2026-06-15T09:27:05.1517551Z           "evidence": [
2026-06-15T09:27:05.1517652Z             {
2026-06-15T09:27:05.1517790Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T09:27:05.1517909Z               "line": 837
2026-06-15T09:27:05.1518010Z             },
2026-06-15T09:27:05.1518110Z             {
2026-06-15T09:27:05.1518257Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:27:05.1518363Z               "line": 1190
2026-06-15T09:27:05.1518462Z             },
2026-06-15T09:27:05.1518567Z             {
2026-06-15T09:27:05.1518721Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T09:27:05.1518825Z               "line": 538
2026-06-15T09:27:05.1518920Z             },
2026-06-15T09:27:05.1519110Z             {
2026-06-15T09:27:05.1519255Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T09:27:05.1519369Z               "line": 669
2026-06-15T09:27:05.1519473Z             },
2026-06-15T09:27:05.1519575Z             {
2026-06-15T09:27:05.1519721Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T09:27:05.1519830Z               "line": 26
2026-06-15T09:27:05.1519930Z             },
2026-06-15T09:27:05.1520022Z             {
2026-06-15T09:27:05.1520279Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T09:27:05.1520384Z               "line": 60
2026-06-15T09:27:05.1520483Z             },
2026-06-15T09:27:05.1520584Z             {
2026-06-15T09:27:05.1520726Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T09:27:05.1520841Z               "line": 168
2026-06-15T09:27:05.1520942Z             },
2026-06-15T09:27:05.1521051Z             {
2026-06-15T09:27:05.1521190Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T09:27:05.1521303Z               "line": 295
2026-06-15T09:27:05.1521413Z             },
2026-06-15T09:27:05.1521509Z             {
2026-06-15T09:27:05.1521780Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T09:27:05.1521877Z               "line": 417
2026-06-15T09:27:05.1521980Z             },
2026-06-15T09:27:05.1522079Z             {
2026-06-15T09:27:05.1522241Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T09:27:05.1522354Z               "line": 252
2026-06-15T09:27:05.1522459Z             },
2026-06-15T09:27:05.1522564Z             {
2026-06-15T09:27:05.1522683Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1522792Z               "line": 3315
2026-06-15T09:27:05.1522893Z             },
2026-06-15T09:27:05.1522992Z             {
2026-06-15T09:27:05.1523117Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1523222Z               "line": 3816
2026-06-15T09:27:05.1523326Z             },
2026-06-15T09:27:05.1523422Z             {
2026-06-15T09:27:05.1523546Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1523655Z               "line": 4445
2026-06-15T09:27:05.1523756Z             }
2026-06-15T09:27:05.1523860Z           ]
2026-06-15T09:27:05.1523961Z         },
2026-06-15T09:27:05.1524066Z         "int": {
2026-06-15T09:27:05.1524175Z           "complete": true,
2026-06-15T09:27:05.1524294Z           "evidence": [
2026-06-15T09:27:05.1524396Z             {
2026-06-15T09:27:05.1524561Z               "path": "crates/spt-daemon/tests/pairjoin.rs",
2026-06-15T09:27:05.1524667Z               "line": 22
2026-06-15T09:27:05.1524772Z             },
2026-06-15T09:27:05.1524871Z             {
2026-06-15T09:27:05.1525008Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:27:05.1525118Z               "line": 576
2026-06-15T09:27:05.1525216Z             },
2026-06-15T09:27:05.1525311Z             {
2026-06-15T09:27:05.1525460Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:27:05.1525559Z               "line": 793
2026-06-15T09:27:05.1525659Z             }
2026-06-15T09:27:05.1525761Z           ]
2026-06-15T09:27:05.1525869Z         },
2026-06-15T09:27:05.1525979Z         "unit": {
2026-06-15T09:27:05.1526094Z           "complete": true,
2026-06-15T09:27:05.1526213Z           "evidence": [
2026-06-15T09:27:05.1526313Z             {
2026-06-15T09:27:05.1526461Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T09:27:05.1526570Z               "line": 586
2026-06-15T09:27:05.1526676Z             },
2026-06-15T09:27:05.1526776Z             {
2026-06-15T09:27:05.1526909Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1527024Z               "line": 8264
2026-06-15T09:27:05.1527123Z             },
2026-06-15T09:27:05.1527229Z             {
2026-06-15T09:27:05.1527344Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1527461Z               "line": 8955
2026-06-15T09:27:05.1527561Z             }
2026-06-15T09:27:05.1527661Z           ]
2026-06-15T09:27:05.1527764Z         }
2026-06-15T09:27:05.1527864Z       }
2026-06-15T09:27:05.1527959Z     },
2026-06-15T09:27:05.1528065Z     {
2026-06-15T09:27:05.1528183Z       "id": "REQ-SUBNET-3",
2026-06-15T09:27:05.1528493Z       "title": "Node labels: hostname-default, gossiped, addressable in @node qualifiers (refuse-on-ambiguity)",
2026-06-15T09:27:05.1528618Z       "requiredStages": [
2026-06-15T09:27:05.1528723Z         "impl",
2026-06-15T09:27:05.1528909Z         "unit"
2026-06-15T09:27:05.1529084Z       ],
2026-06-15T09:27:05.1529195Z       "stages": {
2026-06-15T09:27:05.1529290Z         "doc": {
2026-06-15T09:27:05.1529395Z           "complete": false,
2026-06-15T09:27:05.1529520Z           "evidence": []
2026-06-15T09:27:05.1529624Z         },
2026-06-15T09:27:05.1529719Z         "impl": {
2026-06-15T09:27:05.1529835Z           "complete": true,
2026-06-15T09:27:05.1529934Z           "evidence": [
2026-06-15T09:27:05.1530039Z             {
2026-06-15T09:27:05.1530192Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:05.1530305Z               "line": 152
2026-06-15T09:27:05.1530409Z             },
2026-06-15T09:27:05.1530611Z             {
2026-06-15T09:27:05.1530771Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:05.1530868Z               "line": 299
2026-06-15T09:27:05.1530967Z             },
2026-06-15T09:27:05.1531072Z             {
2026-06-15T09:27:05.1531225Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:05.1531338Z               "line": 437
2026-06-15T09:27:05.1531440Z             },
2026-06-15T09:27:05.1531539Z             {
2026-06-15T09:27:05.1531687Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:05.1531798Z               "line": 480
2026-06-15T09:27:05.1531901Z             },
2026-06-15T09:27:05.1532002Z             {
2026-06-15T09:27:05.1532146Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.1532249Z               "line": 125
2026-06-15T09:27:05.1532350Z             },
2026-06-15T09:27:05.1532447Z             {
2026-06-15T09:27:05.1532592Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.1532720Z               "line": 253
2026-06-15T09:27:05.1532815Z             },
2026-06-15T09:27:05.1532919Z             {
2026-06-15T09:27:05.1533062Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.1533177Z               "line": 264
2026-06-15T09:27:05.1533271Z             },
2026-06-15T09:27:05.1533372Z             {
2026-06-15T09:27:05.1533524Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.1533624Z               "line": 285
2026-06-15T09:27:05.1533730Z             },
2026-06-15T09:27:05.1533821Z             {
2026-06-15T09:27:05.1533968Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.1534082Z               "line": 589
2026-06-15T09:27:05.1534182Z             },
2026-06-15T09:27:05.1534282Z             {
2026-06-15T09:27:05.1534425Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.1534535Z               "line": 648
2026-06-15T09:27:05.1534636Z             },
2026-06-15T09:27:05.1534735Z             {
2026-06-15T09:27:05.1534878Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T09:27:05.1534985Z               "line": 61
2026-06-15T09:27:05.1535092Z             },
2026-06-15T09:27:05.1535189Z             {
2026-06-15T09:27:05.1535351Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T09:27:05.1535450Z               "line": 90
2026-06-15T09:27:05.1535559Z             },
2026-06-15T09:27:05.1535645Z             {
2026-06-15T09:27:05.1535810Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T09:27:05.1535953Z               "line": 125
2026-06-15T09:27:05.1536049Z             },
2026-06-15T09:27:05.1536148Z             {
2026-06-15T09:27:05.1536292Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-15T09:27:05.1536396Z               "line": 9
2026-06-15T09:27:05.1536510Z             },
2026-06-15T09:27:05.1536607Z             {
2026-06-15T09:27:05.1536749Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1536864Z               "line": 3653
2026-06-15T09:27:05.1536969Z             },
2026-06-15T09:27:05.1537068Z             {
2026-06-15T09:27:05.1537208Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T09:27:05.1537326Z               "line": 445
2026-06-15T09:27:05.1537523Z             }
2026-06-15T09:27:05.1537627Z           ]
2026-06-15T09:27:05.1537727Z         },
2026-06-15T09:27:05.1537828Z         "int": {
2026-06-15T09:27:05.1537946Z           "complete": false,
2026-06-15T09:27:05.1538054Z           "evidence": []
2026-06-15T09:27:05.1538154Z         },
2026-06-15T09:27:05.1538254Z         "unit": {
2026-06-15T09:27:05.1538376Z           "complete": true,
2026-06-15T09:27:05.1538477Z           "evidence": [
2026-06-15T09:27:05.1541728Z             {
2026-06-15T09:27:05.1541942Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:05.1542053Z               "line": 1304
2026-06-15T09:27:05.1542310Z             },
2026-06-15T09:27:05.1542401Z             {
2026-06-15T09:27:05.1542571Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:05.1542682Z               "line": 1606
2026-06-15T09:27:05.1542781Z             },
2026-06-15T09:27:05.1542881Z             {
2026-06-15T09:27:05.1543044Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T09:27:05.1543157Z               "line": 888
2026-06-15T09:27:05.1543262Z             },
2026-06-15T09:27:05.1543362Z             {
2026-06-15T09:27:05.1543512Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.1543617Z               "line": 959
2026-06-15T09:27:05.1543714Z             },
2026-06-15T09:27:05.1543817Z             {
2026-06-15T09:27:05.1543966Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.1544066Z               "line": 1009
2026-06-15T09:27:05.1544170Z             },
2026-06-15T09:27:05.1544271Z             {
2026-06-15T09:27:05.1544427Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.1544528Z               "line": 1068
2026-06-15T09:27:05.1544633Z             },
2026-06-15T09:27:05.1544742Z             {
2026-06-15T09:27:05.1544891Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T09:27:05.1545004Z               "line": 234
2026-06-15T09:27:05.1545109Z             },
2026-06-15T09:27:05.1545201Z             {
2026-06-15T09:27:05.1545347Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-15T09:27:05.1545453Z               "line": 49
2026-06-15T09:27:05.1545555Z             },
2026-06-15T09:27:05.1545652Z             {
2026-06-15T09:27:05.1545787Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1545888Z               "line": 8600
2026-06-15T09:27:05.1545986Z             },
2026-06-15T09:27:05.1546090Z             {
2026-06-15T09:27:05.1546215Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1546327Z               "line": 8706
2026-06-15T09:27:05.1546431Z             },
2026-06-15T09:27:05.1546537Z             {
2026-06-15T09:27:05.1546661Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1546760Z               "line": 8921
2026-06-15T09:27:05.1546847Z             }
2026-06-15T09:27:05.1546956Z           ]
2026-06-15T09:27:05.1547061Z         }
2026-06-15T09:27:05.1547158Z       }
2026-06-15T09:27:05.1547257Z     },
2026-06-15T09:27:05.1547361Z     {
2026-06-15T09:27:05.1547477Z       "id": "REQ-SUBNET-4",
2026-06-15T09:27:05.1547816Z       "title": "Subnet membership mutations elevation-gated (create = seed reveal; join = trust-boundary enrollment)",
2026-06-15T09:27:05.1547938Z       "requiredStages": [
2026-06-15T09:27:05.1548044Z         "impl",
2026-06-15T09:27:05.1548149Z         "unit"
2026-06-15T09:27:05.1548253Z       ],
2026-06-15T09:27:05.1548349Z       "stages": {
2026-06-15T09:27:05.1548450Z         "doc": {
2026-06-15T09:27:05.1548563Z           "complete": true,
2026-06-15T09:27:05.1548676Z           "evidence": [
2026-06-15T09:27:05.1548786Z             {
2026-06-15T09:27:05.1549051Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-15T09:27:05.1549166Z               "line": 60
2026-06-15T09:27:05.1549261Z             }
2026-06-15T09:27:05.1549361Z           ]
2026-06-15T09:27:05.1549457Z         },
2026-06-15T09:27:05.1549666Z         "impl": {
2026-06-15T09:27:05.1549786Z           "complete": true,
2026-06-15T09:27:05.1549885Z           "evidence": [
2026-06-15T09:27:05.1549991Z             {
2026-06-15T09:27:05.1550114Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1550229Z               "line": 2959
2026-06-15T09:27:05.1550330Z             },
2026-06-15T09:27:05.1550434Z             {
2026-06-15T09:27:05.1550553Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1550655Z               "line": 4412
2026-06-15T09:27:05.1550753Z             },
2026-06-15T09:27:05.1550858Z             {
2026-06-15T09:27:05.1550988Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1551192Z               "line": 4445
2026-06-15T09:27:05.1551294Z             }
2026-06-15T09:27:05.1551402Z           ]
2026-06-15T09:27:05.1551501Z         },
2026-06-15T09:27:05.1551601Z         "int": {
2026-06-15T09:27:05.1551707Z           "complete": false,
2026-06-15T09:27:05.1551815Z           "evidence": []
2026-06-15T09:27:05.1551916Z         },
2026-06-15T09:27:05.1552017Z         "unit": {
2026-06-15T09:27:05.1552130Z           "complete": true,
2026-06-15T09:27:05.1552231Z           "evidence": [
2026-06-15T09:27:05.1552336Z             {
2026-06-15T09:27:05.1552459Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1552579Z               "line": 8380
2026-06-15T09:27:05.1552679Z             },
2026-06-15T09:27:05.1552783Z             {
2026-06-15T09:27:05.1552913Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1553022Z               "line": 8454
2026-06-15T09:27:05.1553122Z             }
2026-06-15T09:27:05.1553223Z           ]
2026-06-15T09:27:05.1553323Z         }
2026-06-15T09:27:05.1553427Z       }
2026-06-15T09:27:05.1553529Z     },
2026-06-15T09:27:05.1553628Z     {
2026-06-15T09:27:05.1553736Z       "id": "REQ-SUBNET-5",
2026-06-15T09:27:05.1555040Z       "title": "Per-subnet serve-state: spt subnet detach <NAME> [--save] / attach <NAME> [--save] — daemon keeps running, stops/starts advertising + connecting for that subnet (peer pump + responder selective); --save persists the startup default in daemon config; the all-attached banner gains per-subnet states (M8 decision 6, --save renamed from --auto per decision 25 session)",
2026-06-15T09:27:05.1555165Z       "requiredStages": [
2026-06-15T09:27:05.1555275Z         "impl",
2026-06-15T09:27:05.1555379Z         "unit",
2026-06-15T09:27:05.1555480Z         "int"
2026-06-15T09:27:05.1555579Z       ],
2026-06-15T09:27:05.1555674Z       "stages": {
2026-06-15T09:27:05.1555780Z         "doc": {
2026-06-15T09:27:05.1555898Z           "complete": false,
2026-06-15T09:27:05.1556023Z           "evidence": []
2026-06-15T09:27:05.1556124Z         },
2026-06-15T09:27:05.1556232Z         "impl": {
2026-06-15T09:27:05.1556338Z           "complete": true,
2026-06-15T09:27:05.1556448Z           "evidence": [
2026-06-15T09:27:05.1556551Z             {
2026-06-15T09:27:05.1556704Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:27:05.1556827Z               "line": 126
2026-06-15T09:27:05.1556925Z             },
2026-06-15T09:27:05.1557016Z             {
2026-06-15T09:27:05.1557174Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T09:27:05.1557278Z               "line": 413
2026-06-15T09:27:05.1557374Z             },
2026-06-15T09:27:05.1557479Z             {
2026-06-15T09:27:05.1557626Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T09:27:05.1557732Z               "line": 74
2026-06-15T09:27:05.1557832Z             },
2026-06-15T09:27:05.1557931Z             {
2026-06-15T09:27:05.1558070Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:27:05.1558193Z               "line": 332
2026-06-15T09:27:05.1558299Z             },
2026-06-15T09:27:05.1558395Z             {
2026-06-15T09:27:05.1558537Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:27:05.1558638Z               "line": 621
2026-06-15T09:27:05.1558832Z             },
2026-06-15T09:27:05.1558934Z             {
2026-06-15T09:27:05.1559161Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-15T09:27:05.1559275Z               "line": 31
2026-06-15T09:27:05.1559370Z             },
2026-06-15T09:27:05.1559473Z             {
2026-06-15T09:27:05.1559626Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-15T09:27:05.1559740Z               "line": 50
2026-06-15T09:27:05.1559840Z             },
2026-06-15T09:27:05.1559941Z             {
2026-06-15T09:27:05.1560093Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-15T09:27:05.1560192Z               "line": 69
2026-06-15T09:27:05.1560422Z             },
2026-06-15T09:27:05.1560522Z             {
2026-06-15T09:27:05.1560674Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-15T09:27:05.1560774Z               "line": 113
2026-06-15T09:27:05.1560875Z             },
2026-06-15T09:27:05.1560975Z             {
2026-06-15T09:27:05.1561118Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-15T09:27:05.1561234Z               "line": 25
2026-06-15T09:27:05.1561337Z             },
2026-06-15T09:27:05.1561433Z             {
2026-06-15T09:27:05.1561581Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-15T09:27:05.1561685Z               "line": 34
2026-06-15T09:27:05.1561786Z             },
2026-06-15T09:27:05.1561892Z             {
2026-06-15T09:27:05.1562047Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-15T09:27:05.1562146Z               "line": 17
2026-06-15T09:27:05.1562248Z             },
2026-06-15T09:27:05.1562347Z             {
2026-06-15T09:27:05.1562491Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1562605Z               "line": 4370
2026-06-15T09:27:05.1562705Z             },
2026-06-15T09:27:05.1562811Z             {
2026-06-15T09:27:05.1562944Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T09:27:05.1563057Z               "line": 419
2026-06-15T09:27:05.1563163Z             }
2026-06-15T09:27:05.1563267Z           ]
2026-06-15T09:27:05.1563372Z         },
2026-06-15T09:27:05.1563469Z         "int": {
2026-06-15T09:27:05.1563582Z           "complete": true,
2026-06-15T09:27:05.1563691Z           "evidence": [
2026-06-15T09:27:05.1563798Z             {
2026-06-15T09:27:05.1563944Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T09:27:05.1564059Z               "line": 817
2026-06-15T09:27:05.1564160Z             }
2026-06-15T09:27:05.1564263Z           ]
2026-06-15T09:27:05.1564363Z         },
2026-06-15T09:27:05.1564458Z         "unit": {
2026-06-15T09:27:05.1564580Z           "complete": true,
2026-06-15T09:27:05.1564689Z           "evidence": [
2026-06-15T09:27:05.1564791Z             {
2026-06-15T09:27:05.1564937Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T09:27:05.1565038Z               "line": 341
2026-06-15T09:27:05.1565148Z             },
2026-06-15T09:27:05.1565247Z             {
2026-06-15T09:27:05.1565396Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:27:05.1565496Z               "line": 1115
2026-06-15T09:27:05.1565595Z             },
2026-06-15T09:27:05.1565697Z             {
2026-06-15T09:27:05.1565844Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-15T09:27:05.1565958Z               "line": 151
2026-06-15T09:27:05.1566064Z             },
2026-06-15T09:27:05.1566168Z             {
2026-06-15T09:27:05.1566322Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-15T09:27:05.1566426Z               "line": 61
2026-06-15T09:27:05.1566530Z             },
2026-06-15T09:27:05.1566627Z             {
2026-06-15T09:27:05.1566783Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-15T09:27:05.1566893Z               "line": 111
2026-06-15T09:27:05.1566989Z             },
2026-06-15T09:27:05.1567102Z             {
2026-06-15T09:27:05.1567244Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-15T09:27:05.1567457Z               "line": 138
2026-06-15T09:27:05.1567556Z             },
2026-06-15T09:27:05.1567658Z             {
2026-06-15T09:27:05.1567800Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-15T09:27:05.1567915Z               "line": 148
2026-06-15T09:27:05.1568015Z             },
2026-06-15T09:27:05.1568114Z             {
2026-06-15T09:27:05.1568244Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1568353Z               "line": 8281
2026-06-15T09:27:05.1568457Z             }
2026-06-15T09:27:05.1568554Z           ]
2026-06-15T09:27:05.1568654Z         }
2026-06-15T09:27:05.1568754Z       }
2026-06-15T09:27:05.1568854Z     },
2026-06-15T09:27:05.1569111Z     {
2026-06-15T09:27:05.1569227Z       "id": "REQ-SUBNET-6",
2026-06-15T09:27:05.1569981Z       "title": "Trust lifecycle verbs, elevation-gated: spt subnet leave <NAME> (membership exit) and spt subnet prune <node> (removes a dead identity's trust + registry rows, killing its dead dials; trust mutation = security surface, REQ-PAIR-6 gate machinery) (M8 decisions 6-7)",
2026-06-15T09:27:05.1570108Z       "requiredStages": [
2026-06-15T09:27:05.1570210Z         "impl",
2026-06-15T09:27:05.1570305Z         "unit"
2026-06-15T09:27:05.1570410Z       ],
2026-06-15T09:27:05.1570521Z       "stages": {
2026-06-15T09:27:05.1570620Z         "doc": {
2026-06-15T09:27:05.1570743Z           "complete": false,
2026-06-15T09:27:05.1570854Z           "evidence": []
2026-06-15T09:27:05.1570949Z         },
2026-06-15T09:27:05.1571053Z         "impl": {
2026-06-15T09:27:05.1571164Z           "complete": true,
2026-06-15T09:27:05.1571278Z           "evidence": [
2026-06-15T09:27:05.1571378Z             {
2026-06-15T09:27:05.1571535Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.1571644Z               "line": 254
2026-06-15T09:27:05.1571746Z             },
2026-06-15T09:27:05.1571850Z             {
2026-06-15T09:27:05.1571978Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1572089Z               "line": 4028
2026-06-15T09:27:05.1572197Z             },
2026-06-15T09:27:05.1572303Z             {
2026-06-15T09:27:05.1572433Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1572536Z               "line": 4045
2026-06-15T09:27:05.1572635Z             },
2026-06-15T09:27:05.1572736Z             {
2026-06-15T09:27:05.1572865Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1572969Z               "line": 4098
2026-06-15T09:27:05.1573075Z             },
2026-06-15T09:27:05.1573165Z             {
2026-06-15T09:27:05.1573284Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1573399Z               "line": 4121
2026-06-15T09:27:05.1573504Z             }
2026-06-15T09:27:05.1573603Z           ]
2026-06-15T09:27:05.1573700Z         },
2026-06-15T09:27:05.1573799Z         "int": {
2026-06-15T09:27:05.1573913Z           "complete": false,
2026-06-15T09:27:05.1574015Z           "evidence": []
2026-06-15T09:27:05.1574118Z         },
2026-06-15T09:27:05.1574219Z         "unit": {
2026-06-15T09:27:05.1574334Z           "complete": true,
2026-06-15T09:27:05.1574438Z           "evidence": [
2026-06-15T09:27:05.1574538Z             {
2026-06-15T09:27:05.1574668Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1574771Z               "line": 8295
2026-06-15T09:27:05.1574866Z             },
2026-06-15T09:27:05.1574966Z             {
2026-06-15T09:27:05.1575098Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1575197Z               "line": 8328
2026-06-15T09:27:05.1575298Z             },
2026-06-15T09:27:05.1575399Z             {
2026-06-15T09:27:05.1575521Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1575641Z               "line": 8337
2026-06-15T09:27:05.1575737Z             }
2026-06-15T09:27:05.1575836Z           ]
2026-06-15T09:27:05.1575938Z         }
2026-06-15T09:27:05.1576042Z       }
2026-06-15T09:27:05.1576146Z     },
2026-06-15T09:27:05.1576243Z     {
2026-06-15T09:27:05.1576361Z       "id": "REQ-SUBNET-7",
2026-06-15T09:27:05.1578189Z       "title": "Per-machine re-pair trust overwrite: registry rows carry a hashed stable machine identifier (OS machine id /etc/machine-id|MachineGuid, domain-separated SHA-256 before gossip, spt-minted persisted UUID fallback; additive serde-default field — old rows parse clean); a COMPLETED pairing ceremony presenting the same node label AND machine id as an existing trusted row evicts the superseded identity's trust + registry rows on the seed-holder and replicates the eviction; a gossiped claim alone never evicts trust (M8 decisions 13, 22)",
2026-06-15T09:27:05.1578313Z       "requiredStages": [
2026-06-15T09:27:05.1578412Z         "impl",
2026-06-15T09:27:05.1578619Z         "unit"
2026-06-15T09:27:05.1578712Z       ],
2026-06-15T09:27:05.1578819Z       "stages": {
2026-06-15T09:27:05.1578923Z         "doc": {
2026-06-15T09:27:05.1579114Z           "complete": false,
2026-06-15T09:27:05.1579219Z           "evidence": []
2026-06-15T09:27:05.1579319Z         },
2026-06-15T09:27:05.1579424Z         "impl": {
2026-06-15T09:27:05.1579543Z           "complete": true,
2026-06-15T09:27:05.1579648Z           "evidence": [
2026-06-15T09:27:05.1579749Z             {
2026-06-15T09:27:05.1579900Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-15T09:27:05.1580015Z               "line": 17
2026-06-15T09:27:05.1580111Z             },
2026-06-15T09:27:05.1580210Z             {
2026-06-15T09:27:05.1580356Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T09:27:05.1580457Z               "line": 103
2026-06-15T09:27:05.1580551Z             },
2026-06-15T09:27:05.1580650Z             {
2026-06-15T09:27:05.1580813Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T09:27:05.1580917Z               "line": 312
2026-06-15T09:27:05.1581017Z             },
2026-06-15T09:27:05.1581123Z             {
2026-06-15T09:27:05.1581279Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T09:27:05.1581390Z               "line": 131
2026-06-15T09:27:05.1581480Z             },
2026-06-15T09:27:05.1581584Z             {
2026-06-15T09:27:05.1581739Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:05.1581848Z               "line": 160
2026-06-15T09:27:05.1581947Z             },
2026-06-15T09:27:05.1582049Z             {
2026-06-15T09:27:05.1582214Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:05.1582325Z               "line": 441
2026-06-15T09:27:05.1582429Z             },
2026-06-15T09:27:05.1582524Z             {
2026-06-15T09:27:05.1582669Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:05.1582786Z               "line": 618
2026-06-15T09:27:05.1582892Z             },
2026-06-15T09:27:05.1582993Z             {
2026-06-15T09:27:05.1583148Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:05.1583253Z               "line": 658
2026-06-15T09:27:05.1583368Z             },
2026-06-15T09:27:05.1583467Z             {
2026-06-15T09:27:05.1583625Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:05.1583731Z               "line": 714
2026-06-15T09:27:05.1583830Z             },
2026-06-15T09:27:05.1583931Z             {
2026-06-15T09:27:05.1584087Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T09:27:05.1584202Z               "line": 136
2026-06-15T09:27:05.1584293Z             },
2026-06-15T09:27:05.1584398Z             {
2026-06-15T09:27:05.1584550Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.1584655Z               "line": 139
2026-06-15T09:27:05.1584755Z             }
2026-06-15T09:27:05.1584865Z           ]
2026-06-15T09:27:05.1584970Z         },
2026-06-15T09:27:05.1585074Z         "int": {
2026-06-15T09:27:05.1585190Z           "complete": false,
2026-06-15T09:27:05.1585304Z           "evidence": []
2026-06-15T09:27:05.1585403Z         },
2026-06-15T09:27:05.1585507Z         "unit": {
2026-06-15T09:27:05.1585625Z           "complete": true,
2026-06-15T09:27:05.1585848Z           "evidence": [
2026-06-15T09:27:05.1585949Z             {
2026-06-15T09:27:05.1586110Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-15T09:27:05.1586211Z               "line": 136
2026-06-15T09:27:05.1586320Z             },
2026-06-15T09:27:05.1586415Z             {
2026-06-15T09:27:05.1586555Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-15T09:27:05.1586668Z               "line": 156
2026-06-15T09:27:05.1586769Z             },
2026-06-15T09:27:05.1586874Z             {
2026-06-15T09:27:05.1587011Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:05.1587226Z               "line": 935
2026-06-15T09:27:05.1587326Z             },
2026-06-15T09:27:05.1587427Z             {
2026-06-15T09:27:05.1587588Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:27:05.1587693Z               "line": 957
2026-06-15T09:27:05.1587800Z             },
2026-06-15T09:27:05.1587908Z             {
2026-06-15T09:27:05.1588061Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T09:27:05.1588171Z               "line": 1419
2026-06-15T09:27:05.1588270Z             },
2026-06-15T09:27:05.1588374Z             {
2026-06-15T09:27:05.1588511Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:27:05.1588610Z               "line": 1004
2026-06-15T09:27:05.1588715Z             }
2026-06-15T09:27:05.1588816Z           ]
2026-06-15T09:27:05.1588920Z         }
2026-06-15T09:27:05.1589083Z       }
2026-06-15T09:27:05.1589183Z     },
2026-06-15T09:27:05.1589287Z     {
2026-06-15T09:27:05.1589403Z       "id": "REQ-SUBNET-8",
2026-06-15T09:27:05.1590575Z       "title": "Status render honesty: zero-subnet text is daemon-aware ('No subnets registered — this node is standalone.' + daemon-running-dependent blurb, never implying messaging works while the daemon is down); hint footer prints on bare spt subnet only (status drops it); a stalled pump is surfaced in subnet status, never rendered implied-healthy (M8 decisions 11-12, 23)",
2026-06-15T09:27:05.1590695Z       "requiredStages": [
2026-06-15T09:27:05.1590799Z         "impl",
2026-06-15T09:27:05.1590903Z         "unit"
2026-06-15T09:27:05.1590998Z       ],
2026-06-15T09:27:05.1591106Z       "stages": {
2026-06-15T09:27:05.1591205Z         "doc": {
2026-06-15T09:27:05.1591325Z           "complete": false,
2026-06-15T09:27:05.1591435Z           "evidence": []
2026-06-15T09:27:05.1591534Z         },
2026-06-15T09:27:05.1591636Z         "impl": {
2026-06-15T09:27:05.1591755Z           "complete": true,
2026-06-15T09:27:05.1591864Z           "evidence": [
2026-06-15T09:27:05.1591965Z             {
2026-06-15T09:27:05.1592103Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1592212Z               "line": 3395
2026-06-15T09:27:05.1592313Z             },
2026-06-15T09:27:05.1592413Z             {
2026-06-15T09:27:05.1592546Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1592656Z               "line": 3424
2026-06-15T09:27:05.1592751Z             },
2026-06-15T09:27:05.1592851Z             {
2026-06-15T09:27:05.1592971Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1593075Z               "line": 3441
2026-06-15T09:27:05.1593176Z             },
2026-06-15T09:27:05.1593281Z             {
2026-06-15T09:27:05.1593413Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1593510Z               "line": 3464
2026-06-15T09:27:05.1593610Z             },
2026-06-15T09:27:05.1593703Z             {
2026-06-15T09:27:05.1593832Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1593948Z               "line": 3878
2026-06-15T09:27:05.1594051Z             }
2026-06-15T09:27:05.1594147Z           ]
2026-06-15T09:27:05.1594243Z         },
2026-06-15T09:27:05.1594347Z         "int": {
2026-06-15T09:27:05.1594462Z           "complete": false,
2026-06-15T09:27:05.1594576Z           "evidence": []
2026-06-15T09:27:05.1594676Z         },
2026-06-15T09:27:05.1594910Z         "unit": {
2026-06-15T09:27:05.1595028Z           "complete": true,
2026-06-15T09:27:05.1595135Z           "evidence": [
2026-06-15T09:27:05.1595238Z             {
2026-06-15T09:27:05.1595358Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1595469Z               "line": 8485
2026-06-15T09:27:05.1595567Z             },
2026-06-15T09:27:05.1595668Z             {
2026-06-15T09:27:05.1595803Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1595901Z               "line": 8501
2026-06-15T09:27:05.1596005Z             }
2026-06-15T09:27:05.1596106Z           ]
2026-06-15T09:27:05.1596209Z         }
2026-06-15T09:27:05.1596408Z       }
2026-06-15T09:27:05.1596519Z     },
2026-06-15T09:27:05.1596623Z     {
2026-06-15T09:27:05.1596738Z       "id": "REQ-TERM-1",
2026-06-15T09:27:05.1596947Z       "title": "Process-supervisor terminal wrapper hosting broker PTYs",
2026-06-15T09:27:05.1597068Z       "requiredStages": [
2026-06-15T09:27:05.1597167Z         "impl",
2026-06-15T09:27:05.1597281Z         "unit"
2026-06-15T09:27:05.1597382Z       ],
2026-06-15T09:27:05.1597491Z       "stages": {
2026-06-15T09:27:05.1597591Z         "doc": {
2026-06-15T09:27:05.1597716Z           "complete": false,
2026-06-15T09:27:05.1597835Z           "evidence": []
2026-06-15T09:27:05.1597939Z         },
2026-06-15T09:27:05.1598036Z         "impl": {
2026-06-15T09:27:05.1598168Z           "complete": true,
2026-06-15T09:27:05.1598268Z           "evidence": [
2026-06-15T09:27:05.1598365Z             {
2026-06-15T09:27:05.1598506Z               "path": "crates/spt-term/src/pty.rs",
2026-06-15T09:27:05.1598617Z               "line": 59
2026-06-15T09:27:05.1598731Z             },
2026-06-15T09:27:05.1598835Z             {
2026-06-15T09:27:05.1599048Z               "path": "crates/spt-term/src/pty.rs",
2026-06-15T09:27:05.1599157Z               "line": 195
2026-06-15T09:27:05.1599256Z             },
2026-06-15T09:27:05.1599357Z             {
2026-06-15T09:27:05.1599509Z               "path": "crates/spt-term/src/surface.rs",
2026-06-15T09:27:05.1599625Z               "line": 100
2026-06-15T09:27:05.1599724Z             }
2026-06-15T09:27:05.1599824Z           ]
2026-06-15T09:27:05.1599925Z         },
2026-06-15T09:27:05.1600029Z         "int": {
2026-06-15T09:27:05.1600148Z           "complete": false,
2026-06-15T09:27:05.1600259Z           "evidence": []
2026-06-15T09:27:05.1600358Z         },
2026-06-15T09:27:05.1600463Z         "unit": {
2026-06-15T09:27:05.1600588Z           "complete": true,
2026-06-15T09:27:05.1600697Z           "evidence": [
2026-06-15T09:27:05.1600797Z             {
2026-06-15T09:27:05.1600950Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-15T09:27:05.1601063Z               "line": 24
2026-06-15T09:27:05.1601174Z             },
2026-06-15T09:27:05.1601279Z             {
2026-06-15T09:27:05.1601420Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-15T09:27:05.1601535Z               "line": 56
2026-06-15T09:27:05.1601638Z             }
2026-06-15T09:27:05.1601756Z           ]
2026-06-15T09:27:05.1601862Z         }
2026-06-15T09:27:05.1601963Z       }
2026-06-15T09:27:05.1602066Z     },
2026-06-15T09:27:05.1602172Z     {
2026-06-15T09:27:05.1602296Z       "id": "REQ-TERM-2",
2026-06-15T09:27:05.1602515Z       "title": "session-surface abstraction; send-keys + send-line injection",
2026-06-15T09:27:05.1602634Z       "requiredStages": [
2026-06-15T09:27:05.1602738Z         "impl",
2026-06-15T09:27:05.1602859Z         "unit"
2026-06-15T09:27:05.1602958Z       ],
2026-06-15T09:27:05.1603077Z       "stages": {
2026-06-15T09:27:05.1603178Z         "doc": {
2026-06-15T09:27:05.1603297Z           "complete": false,
2026-06-15T09:27:05.1603411Z           "evidence": []
2026-06-15T09:27:05.1603507Z         },
2026-06-15T09:27:05.1603621Z         "impl": {
2026-06-15T09:27:05.1603736Z           "complete": true,
2026-06-15T09:27:05.1603855Z           "evidence": [
2026-06-15T09:27:05.1603955Z             {
2026-06-15T09:27:05.1604094Z               "path": "crates/spt-term/src/surface.rs",
2026-06-15T09:27:05.1604325Z               "line": 117
2026-06-15T09:27:05.1604430Z             },
2026-06-15T09:27:05.1604532Z             {
2026-06-15T09:27:05.1604678Z               "path": "crates/spt-term/src/surface.rs",
2026-06-15T09:27:05.1604789Z               "line": 127
2026-06-15T09:27:05.1604893Z             }
2026-06-15T09:27:05.1604998Z           ]
2026-06-15T09:27:05.1605109Z         },
2026-06-15T09:27:05.1605208Z         "int": {
2026-06-15T09:27:05.1605322Z           "complete": false,
2026-06-15T09:27:05.1605437Z           "evidence": []
2026-06-15T09:27:05.1605537Z         },
2026-06-15T09:27:05.1605637Z         "unit": {
2026-06-15T09:27:05.1605927Z           "complete": true,
2026-06-15T09:27:05.1606048Z           "evidence": [
2026-06-15T09:27:05.1606165Z             {
2026-06-15T09:27:05.1606325Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-15T09:27:05.1606438Z               "line": 46
2026-06-15T09:27:05.1606547Z             },
2026-06-15T09:27:05.1606656Z             {
2026-06-15T09:27:05.1606802Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-15T09:27:05.1606915Z               "line": 77
2026-06-15T09:27:05.1607012Z             }
2026-06-15T09:27:05.1607131Z           ]
2026-06-15T09:27:05.1607230Z         }
2026-06-15T09:27:05.1607341Z       }
2026-06-15T09:27:05.1607441Z     },
2026-06-15T09:27:05.1607540Z     {
2026-06-15T09:27:05.1607666Z       "id": "REQ-TERM-3",
2026-06-15T09:27:05.1607836Z       "title": "Byte-stream remote terminal streaming for v1",
2026-06-15T09:27:05.1607952Z       "requiredStages": [
2026-06-15T09:27:05.1608051Z         "impl",
2026-06-15T09:27:05.1608170Z         "unit"
2026-06-15T09:27:05.1608271Z       ],
2026-06-15T09:27:05.1608375Z       "stages": {
2026-06-15T09:27:05.1608475Z         "doc": {
2026-06-15T09:27:05.1608591Z           "complete": false,
2026-06-15T09:27:05.1608704Z           "evidence": []
2026-06-15T09:27:05.1608804Z         },
2026-06-15T09:27:05.1608925Z         "impl": {
2026-06-15T09:27:05.1609119Z           "complete": true,
2026-06-15T09:27:05.1609221Z           "evidence": [
2026-06-15T09:27:05.1609324Z             {
2026-06-15T09:27:05.1609465Z               "path": "crates/spt-term/src/stream.rs",
2026-06-15T09:27:05.1609581Z               "line": 71
2026-06-15T09:27:05.1609678Z             }
2026-06-15T09:27:05.1609782Z           ]
2026-06-15T09:27:05.1609893Z         },
2026-06-15T09:27:05.1609998Z         "int": {
2026-06-15T09:27:05.1610112Z           "complete": false,
2026-06-15T09:27:05.1610222Z           "evidence": []
2026-06-15T09:27:05.1610317Z         },
2026-06-15T09:27:05.1610426Z         "unit": {
2026-06-15T09:27:05.1610547Z           "complete": true,
2026-06-15T09:27:05.1610656Z           "evidence": [
2026-06-15T09:27:05.1610761Z             {
2026-06-15T09:27:05.1610899Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-15T09:27:05.1611004Z               "line": 37
2026-06-15T09:27:05.1611114Z             },
2026-06-15T09:27:05.1611223Z             {
2026-06-15T09:27:05.1611362Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-15T09:27:05.1611477Z               "line": 67
2026-06-15T09:27:05.1611576Z             }
2026-06-15T09:27:05.1611672Z           ]
2026-06-15T09:27:05.1611773Z         }
2026-06-15T09:27:05.1611886Z       }
2026-06-15T09:27:05.1611985Z     },
2026-06-15T09:27:05.1612085Z     {
2026-06-15T09:27:05.1612208Z       "id": "REQ-TERM-4",
2026-06-15T09:27:05.1612732Z       "title": "Live activity buffer (session digest): projection of normalized session logs, snapshot-pull (spt endpoint digest) + structured-delta-stream contract + api digest-entry push",
2026-06-15T09:27:05.1612856Z       "requiredStages": [
2026-06-15T09:27:05.1612960Z         "impl",
2026-06-15T09:27:05.1613071Z         "unit",
2026-06-15T09:27:05.1613166Z         "int"
2026-06-15T09:27:05.1613261Z       ],
2026-06-15T09:27:05.1613362Z       "stages": {
2026-06-15T09:27:05.1613466Z         "doc": {
2026-06-15T09:27:05.1613686Z           "complete": false,
2026-06-15T09:27:05.1613800Z           "evidence": []
2026-06-15T09:27:05.1613900Z         },
2026-06-15T09:27:05.1614006Z         "impl": {
2026-06-15T09:27:05.1614129Z           "complete": true,
2026-06-15T09:27:05.1614238Z           "evidence": [
2026-06-15T09:27:05.1614335Z             {
2026-06-15T09:27:05.1614491Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T09:27:05.1614597Z               "line": 37
2026-06-15T09:27:05.1614697Z             },
2026-06-15T09:27:05.1614800Z             {
2026-06-15T09:27:05.1614962Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T09:27:05.1615073Z               "line": 25
2026-06-15T09:27:05.1615272Z             },
2026-06-15T09:27:05.1615368Z             {
2026-06-15T09:27:05.1615514Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T09:27:05.1615635Z               "line": 114
2026-06-15T09:27:05.1615720Z             },
2026-06-15T09:27:05.1615834Z             {
2026-06-15T09:27:05.1615988Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T09:27:05.1616102Z               "line": 267
2026-06-15T09:27:05.1616207Z             },
2026-06-15T09:27:05.1616307Z             {
2026-06-15T09:27:05.1616454Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T09:27:05.1616561Z               "line": 289
2026-06-15T09:27:05.1616660Z             },
2026-06-15T09:27:05.1616765Z             {
2026-06-15T09:27:05.1616909Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T09:27:05.1617026Z               "line": 307
2026-06-15T09:27:05.1617126Z             },
2026-06-15T09:27:05.1617226Z             {
2026-06-15T09:27:05.1617372Z               "path": "crates/spt-store/src/history.rs",
2026-06-15T09:27:05.1617480Z               "line": 33
2026-06-15T09:27:05.1617582Z             },
2026-06-15T09:27:05.1617686Z             {
2026-06-15T09:27:05.1617834Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:27:05.1617939Z               "line": 52
2026-06-15T09:27:05.1618043Z             },
2026-06-15T09:27:05.1618149Z             {
2026-06-15T09:27:05.1618297Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:27:05.1618410Z               "line": 180
2026-06-15T09:27:05.1618512Z             },
2026-06-15T09:27:05.1618616Z             {
2026-06-15T09:27:05.1618763Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:27:05.1618865Z               "line": 190
2026-06-15T09:27:05.1619035Z             },
2026-06-15T09:27:05.1619132Z             {
2026-06-15T09:27:05.1619283Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:27:05.1619389Z               "line": 250
2026-06-15T09:27:05.1619490Z             },
2026-06-15T09:27:05.1619593Z             {
2026-06-15T09:27:05.1619733Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:27:05.1619838Z               "line": 280
2026-06-15T09:27:05.1619940Z             },
2026-06-15T09:27:05.1620040Z             {
2026-06-15T09:27:05.1620188Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:27:05.1620305Z               "line": 291
2026-06-15T09:27:05.1620396Z             },
2026-06-15T09:27:05.1620497Z             {
2026-06-15T09:27:05.1620624Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1620740Z               "line": 1086
2026-06-15T09:27:05.1620840Z             }
2026-06-15T09:27:05.1620944Z           ]
2026-06-15T09:27:05.1621040Z         },
2026-06-15T09:27:05.1621140Z         "int": {
2026-06-15T09:27:05.1621258Z           "complete": true,
2026-06-15T09:27:05.1621374Z           "evidence": [
2026-06-15T09:27:05.1621464Z             {
2026-06-15T09:27:05.1621621Z               "path": "crates/spt-daemon/tests/digest.rs",
2026-06-15T09:27:05.1621732Z               "line": 18
2026-06-15T09:27:05.1621835Z             }
2026-06-15T09:27:05.1621932Z           ]
2026-06-15T09:27:05.1625017Z         },
2026-06-15T09:27:05.1625152Z         "unit": {
2026-06-15T09:27:05.1625408Z           "complete": true,
2026-06-15T09:27:05.1625512Z           "evidence": [
2026-06-15T09:27:05.1625609Z             {
2026-06-15T09:27:05.1625769Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T09:27:05.1625880Z               "line": 349
2026-06-15T09:27:05.1625999Z             },
2026-06-15T09:27:05.1626113Z             {
2026-06-15T09:27:05.1626267Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T09:27:05.1626385Z               "line": 401
2026-06-15T09:27:05.1626471Z             },
2026-06-15T09:27:05.1626581Z             {
2026-06-15T09:27:05.1626723Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T09:27:05.1626962Z               "line": 411
2026-06-15T09:27:05.1627067Z             },
2026-06-15T09:27:05.1627168Z             {
2026-06-15T09:27:05.1627325Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T09:27:05.1627430Z               "line": 436
2026-06-15T09:27:05.1627540Z             },
2026-06-15T09:27:05.1627643Z             {
2026-06-15T09:27:05.1627791Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T09:27:05.1627913Z               "line": 456
2026-06-15T09:27:05.1628007Z             },
2026-06-15T09:27:05.1628108Z             {
2026-06-15T09:27:05.1628251Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T09:27:05.1628356Z               "line": 478
2026-06-15T09:27:05.1628457Z             },
2026-06-15T09:27:05.1628556Z             {
2026-06-15T09:27:05.1628704Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T09:27:05.1628814Z               "line": 491
2026-06-15T09:27:05.1628914Z             },
2026-06-15T09:27:05.1629119Z             {
2026-06-15T09:27:05.1629257Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T09:27:05.1629373Z               "line": 502
2026-06-15T09:27:05.1629462Z             },
2026-06-15T09:27:05.1629567Z             {
2026-06-15T09:27:05.1629716Z               "path": "crates/spt-store/src/history.rs",
2026-06-15T09:27:05.1629838Z               "line": 108
2026-06-15T09:27:05.1629939Z             },
2026-06-15T09:27:05.1630040Z             {
2026-06-15T09:27:05.1630182Z               "path": "crates/spt-term/src/digest.rs",
2026-06-15T09:27:05.1630283Z               "line": 119
2026-06-15T09:27:05.1630384Z             },
2026-06-15T09:27:05.1630487Z             {
2026-06-15T09:27:05.1630629Z               "path": "crates/spt-term/src/digest.rs",
2026-06-15T09:27:05.1630738Z               "line": 127
2026-06-15T09:27:05.1630827Z             },
2026-06-15T09:27:05.1630932Z             {
2026-06-15T09:27:05.1631076Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:27:05.1631194Z               "line": 474
2026-06-15T09:27:05.1631295Z             },
2026-06-15T09:27:05.1631400Z             {
2026-06-15T09:27:05.1631542Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:27:05.1631658Z               "line": 501
2026-06-15T09:27:05.1631763Z             },
2026-06-15T09:27:05.1631867Z             {
2026-06-15T09:27:05.1632015Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:27:05.1632119Z               "line": 520
2026-06-15T09:27:05.1632225Z             },
2026-06-15T09:27:05.1632321Z             {
2026-06-15T09:27:05.1632467Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:27:05.1632583Z               "line": 535
2026-06-15T09:27:05.1632682Z             },
2026-06-15T09:27:05.1632777Z             {
2026-06-15T09:27:05.1632917Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:27:05.1633029Z               "line": 561
2026-06-15T09:27:05.1633129Z             },
2026-06-15T09:27:05.1633239Z             {
2026-06-15T09:27:05.1633384Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:27:05.1633489Z               "line": 581
2026-06-15T09:27:05.1633590Z             },
2026-06-15T09:27:05.1633689Z             {
2026-06-15T09:27:05.1633838Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:27:05.1634042Z               "line": 591
2026-06-15T09:27:05.1634148Z             },
2026-06-15T09:27:05.1634243Z             {
2026-06-15T09:27:05.1634390Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:27:05.1634496Z               "line": 683
2026-06-15T09:27:05.1634595Z             },
2026-06-15T09:27:05.1634700Z             {
2026-06-15T09:27:05.1634854Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:27:05.1634954Z               "line": 761
2026-06-15T09:27:05.1635058Z             },
2026-06-15T09:27:05.1635155Z             {
2026-06-15T09:27:05.1635292Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1635503Z               "line": 8052
2026-06-15T09:27:05.1635601Z             }
2026-06-15T09:27:05.1635707Z           ]
2026-06-15T09:27:05.1635808Z         }
2026-06-15T09:27:05.1635930Z       }
2026-06-15T09:27:05.1636029Z     },
2026-06-15T09:27:05.1636135Z     {
2026-06-15T09:27:05.1636249Z       "id": "REQ-TERM-5",
2026-06-15T09:27:05.1637899Z       "title": "Adapter-declared digest extractor seam: a `[digest]` manifest section declaring an imperative extractor (native harness log -> the {role,text,tool,ts} contract; defaults to the [history] source files with an own-source escape hatch), `api digest-entry` push fallback, register-time validation of the section, adapter-declared presentation defaults (window depth, arg-truncation, sprint-collapse) that any consumer may override, and a `spt adapter digest-proof` author tool plus runtime skip-diagnostics (no silent drop). Reverses M9's no-manifest-seam stance; no declarative DSL.",
2026-06-15T09:27:05.1638025Z       "requiredStages": [
2026-06-15T09:27:05.1638132Z         "doc",
2026-06-15T09:27:05.1638236Z         "impl",
2026-06-15T09:27:05.1638337Z         "unit",
2026-06-15T09:27:05.1638440Z         "int"
2026-06-15T09:27:05.1638544Z       ],
2026-06-15T09:27:05.1638644Z       "stages": {
2026-06-15T09:27:05.1638755Z         "doc": {
2026-06-15T09:27:05.1638872Z           "complete": true,
2026-06-15T09:27:05.1639055Z           "evidence": [
2026-06-15T09:27:05.1639145Z             {
2026-06-15T09:27:05.1639264Z               "path": "docs/MANIFEST.md",
2026-06-15T09:27:05.1639370Z               "line": 156
2026-06-15T09:27:05.1639488Z             }
2026-06-15T09:27:05.1639599Z           ]
2026-06-15T09:27:05.1639699Z         },
2026-06-15T09:27:05.1639798Z         "impl": {
2026-06-15T09:27:05.1639908Z           "complete": true,
2026-06-15T09:27:05.1640022Z           "evidence": [
2026-06-15T09:27:05.1640123Z             {
2026-06-15T09:27:05.1640267Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T09:27:05.1640385Z               "line": 75
2026-06-15T09:27:05.1640489Z             },
2026-06-15T09:27:05.1640586Z             {
2026-06-15T09:27:05.1640732Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T09:27:05.1640834Z               "line": 131
2026-06-15T09:27:05.1640944Z             },
2026-06-15T09:27:05.1641038Z             {
2026-06-15T09:27:05.1641180Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T09:27:05.1641280Z               "line": 22
2026-06-15T09:27:05.1641387Z             },
2026-06-15T09:27:05.1641482Z             {
2026-06-15T09:27:05.1641626Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T09:27:05.1641749Z               "line": 81
2026-06-15T09:27:05.1641846Z             },
2026-06-15T09:27:05.1641950Z             {
2026-06-15T09:27:05.1642088Z               "path": "crates/spt-term/src/digest.rs",
2026-06-15T09:27:05.1642204Z               "line": 30
2026-06-15T09:27:05.1642309Z             },
2026-06-15T09:27:05.1642412Z             {
2026-06-15T09:27:05.1642566Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:27:05.1642670Z               "line": 103
2026-06-15T09:27:05.1642770Z             },
2026-06-15T09:27:05.1642871Z             {
2026-06-15T09:27:05.1643018Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:27:05.1643233Z               "line": 167
2026-06-15T09:27:05.1643337Z             },
2026-06-15T09:27:05.1643435Z             {
2026-06-15T09:27:05.1643576Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:27:05.1643689Z               "line": 434
2026-06-15T09:27:05.1643789Z             },
2026-06-15T09:27:05.1643889Z             {
2026-06-15T09:27:05.1644025Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1644131Z               "line": 5074
2026-06-15T09:27:05.1644241Z             },
2026-06-15T09:27:05.1644340Z             {
2026-06-15T09:27:05.1644465Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1644669Z               "line": 5108
2026-06-15T09:27:05.1644775Z             }
2026-06-15T09:27:05.1644885Z           ]
2026-06-15T09:27:05.1644984Z         },
2026-06-15T09:27:05.1645085Z         "int": {
2026-06-15T09:27:05.1645209Z           "complete": true,
2026-06-15T09:27:05.1645318Z           "evidence": [
2026-06-15T09:27:05.1645429Z             {
2026-06-15T09:27:05.1645619Z               "path": "crates/spt-daemon/tests/two_origin_spanning.rs",
2026-06-15T09:27:05.1645724Z               "line": 17
2026-06-15T09:27:05.1645823Z             }
2026-06-15T09:27:05.1645928Z           ]
2026-06-15T09:27:05.1646025Z         },
2026-06-15T09:27:05.1646133Z         "unit": {
2026-06-15T09:27:05.1646243Z           "complete": true,
2026-06-15T09:27:05.1646359Z           "evidence": [
2026-06-15T09:27:05.1646471Z             {
2026-06-15T09:27:05.1646614Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T09:27:05.1646724Z               "line": 360
2026-06-15T09:27:05.1646819Z             },
2026-06-15T09:27:05.1646933Z             {
2026-06-15T09:27:05.1647067Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T09:27:05.1647176Z               "line": 153
2026-06-15T09:27:05.1647272Z             },
2026-06-15T09:27:05.1647372Z             {
2026-06-15T09:27:05.1647515Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T09:27:05.1647621Z               "line": 169
2026-06-15T09:27:05.1647730Z             },
2026-06-15T09:27:05.1647820Z             {
2026-06-15T09:27:05.1647960Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T09:27:05.1648073Z               "line": 191
2026-06-15T09:27:05.1648173Z             },
2026-06-15T09:27:05.1648279Z             {
2026-06-15T09:27:05.1648416Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T09:27:05.1648521Z               "line": 202
2026-06-15T09:27:05.1648618Z             },
2026-06-15T09:27:05.1648721Z             {
2026-06-15T09:27:05.1648868Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T09:27:05.1649052Z               "line": 213
2026-06-15T09:27:05.1649156Z             },
2026-06-15T09:27:05.1649257Z             {
2026-06-15T09:27:05.1649414Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:27:05.1649514Z               "line": 1064
2026-06-15T09:27:05.1649620Z             },
2026-06-15T09:27:05.1649724Z             {
2026-06-15T09:27:05.1649873Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:27:05.1649982Z               "line": 1107
2026-06-15T09:27:05.1650086Z             },
2026-06-15T09:27:05.1650188Z             {
2026-06-15T09:27:05.1650339Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:27:05.1650444Z               "line": 606
2026-06-15T09:27:05.1650545Z             },
2026-06-15T09:27:05.1650645Z             {
2026-06-15T09:27:05.1650788Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:27:05.1650893Z               "line": 634
2026-06-15T09:27:05.1650988Z             },
2026-06-15T09:27:05.1651089Z             {
2026-06-15T09:27:05.1651226Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:27:05.1651336Z               "line": 646
2026-06-15T09:27:05.1651437Z             },
2026-06-15T09:27:05.1651541Z             {
2026-06-15T09:27:05.1651687Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:27:05.1651905Z               "line": 669
2026-06-15T09:27:05.1652004Z             },
2026-06-15T09:27:05.1652106Z             {
2026-06-15T09:27:05.1652234Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1652338Z               "line": 6876
2026-06-15T09:27:05.1652439Z             }
2026-06-15T09:27:05.1652540Z           ]
2026-06-15T09:27:05.1652634Z         }
2026-06-15T09:27:05.1652740Z       }
2026-06-15T09:27:05.1652840Z     },
2026-06-15T09:27:05.1652939Z     {
2026-06-15T09:27:05.1653045Z       "id": "REQ-TERM-6",
2026-06-15T09:27:05.1654273Z       "title": "Thread-spanning digest across session boundaries: a per-endpoint session ledger (`<perch>/sessions.log`) appended at first bind and by `api boundary` on `/clear`|`/compact` session rotation, the digest enumerating the last K sessions so its rolling window bridges a boundary, and a distinctive in-timeline boundary marker (DigestEntry::Boundary). The digest follows the live-agent thread, not a single session.",
2026-06-15T09:27:05.1654500Z       "requiredStages": [
2026-06-15T09:27:05.1654600Z         "impl",
2026-06-15T09:27:05.1654701Z         "unit",
2026-06-15T09:27:05.1654801Z         "int"
2026-06-15T09:27:05.1654900Z       ],
2026-06-15T09:27:05.1655016Z       "stages": {
2026-06-15T09:27:05.1655107Z         "doc": {
2026-06-15T09:27:05.1655230Z           "complete": false,
2026-06-15T09:27:05.1655331Z           "evidence": []
2026-06-15T09:27:05.1655435Z         },
2026-06-15T09:27:05.1655534Z         "impl": {
2026-06-15T09:27:05.1655655Z           "complete": true,
2026-06-15T09:27:05.1655774Z           "evidence": [
2026-06-15T09:27:05.1655873Z             {
2026-06-15T09:27:05.1656036Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T09:27:05.1656145Z               "line": 132
2026-06-15T09:27:05.1656256Z             },
2026-06-15T09:27:05.1656355Z             {
2026-06-15T09:27:05.1656498Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T09:27:05.1656619Z               "line": 176
2026-06-15T09:27:05.1656721Z             },
2026-06-15T09:27:05.1656823Z             {
2026-06-15T09:27:05.1656966Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-15T09:27:05.1657074Z               "line": 17
2026-06-15T09:27:05.1657164Z             },
2026-06-15T09:27:05.1657270Z             {
2026-06-15T09:27:05.1657412Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-15T09:27:05.1657513Z               "line": 96
2026-06-15T09:27:05.1657622Z             },
2026-06-15T09:27:05.1657722Z             {
2026-06-15T09:27:05.1657871Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:27:05.1657990Z               "line": 319
2026-06-15T09:27:05.1658099Z             },
2026-06-15T09:27:05.1658200Z             {
2026-06-15T09:27:05.1658338Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:27:05.1658452Z               "line": 396
2026-06-15T09:27:05.1658548Z             }
2026-06-15T09:27:05.1658648Z           ]
2026-06-15T09:27:05.1658752Z         },
2026-06-15T09:27:05.1658849Z         "int": {
2026-06-15T09:27:05.1659062Z           "complete": true,
2026-06-15T09:27:05.1659174Z           "evidence": [
2026-06-15T09:27:05.1659271Z             {
2026-06-15T09:27:05.1659452Z               "path": "crates/spt-daemon/tests/two_origin_spanning.rs",
2026-06-15T09:27:05.1659556Z               "line": 18
2026-06-15T09:27:05.1659655Z             }
2026-06-15T09:27:05.1659760Z           ]
2026-06-15T09:27:05.1659861Z         },
2026-06-15T09:27:05.1659960Z         "unit": {
2026-06-15T09:27:05.1660079Z           "complete": true,
2026-06-15T09:27:05.1660185Z           "evidence": [
2026-06-15T09:27:05.1660289Z             {
2026-06-15T09:27:05.1660433Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-15T09:27:05.1660547Z               "line": 126
2026-06-15T09:27:05.1660651Z             },
2026-06-15T09:27:05.1660753Z             {
2026-06-15T09:27:05.1660894Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-15T09:27:05.1661100Z               "line": 141
2026-06-15T09:27:05.1661200Z             },
2026-06-15T09:27:05.1661304Z             {
2026-06-15T09:27:05.1661448Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-15T09:27:05.1661562Z               "line": 157
2026-06-15T09:27:05.1661668Z             },
2026-06-15T09:27:05.1661768Z             {
2026-06-15T09:27:05.1661911Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-15T09:27:05.1662022Z               "line": 175
2026-06-15T09:27:05.1662120Z             },
2026-06-15T09:27:05.1662224Z             {
2026-06-15T09:27:05.1662386Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:27:05.1662608Z               "line": 738
2026-06-15T09:27:05.1662714Z             },
2026-06-15T09:27:05.1662813Z             {
2026-06-15T09:27:05.1662966Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:27:05.1663081Z               "line": 759
2026-06-15T09:27:05.1663185Z             },
2026-06-15T09:27:05.1663286Z             {
2026-06-15T09:27:05.1663433Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:27:05.1663552Z               "line": 602
2026-06-15T09:27:05.1663653Z             }
2026-06-15T09:27:05.1663748Z           ]
2026-06-15T09:27:05.1663852Z         }
2026-06-15T09:27:05.1663954Z       }
2026-06-15T09:27:05.1664062Z     },
2026-06-15T09:27:05.1664162Z     {
2026-06-15T09:27:05.1664269Z       "id": "REQ-TERM-7",
2026-06-15T09:27:05.1665513Z       "title": "Two-origin digest merge: spt-owned context-injection entries (psyche_download | echo_mirror | owl_message) appended by spt to the endpoint `digest.log`, timestamp-interleaved with the adapter's extracted activity records into one ordered timeline, via a distinct context-injection record category. Data model only this milestone; GUI collapse/expand and the echo-reads-digest delta loop are deferred to the surfaces that consume them.",
2026-06-15T09:27:05.1665642Z       "requiredStages": [
2026-06-15T09:27:05.1665746Z         "impl",
2026-06-15T09:27:05.1665848Z         "unit",
2026-06-15T09:27:05.1665957Z         "int"
2026-06-15T09:27:05.1666057Z       ],
2026-06-15T09:27:05.1666168Z       "stages": {
2026-06-15T09:27:05.1666272Z         "doc": {
2026-06-15T09:27:05.1666385Z           "complete": false,
2026-06-15T09:27:05.1666492Z           "evidence": []
2026-06-15T09:27:05.1666591Z         },
2026-06-15T09:27:05.1666705Z         "impl": {
2026-06-15T09:27:05.1666816Z           "complete": true,
2026-06-15T09:27:05.1666930Z           "evidence": [
2026-06-15T09:27:05.1667034Z             {
2026-06-15T09:27:05.1667174Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T09:27:05.1667306Z               "line": 133
2026-06-15T09:27:05.1667407Z             },
2026-06-15T09:27:05.1667517Z             {
2026-06-15T09:27:05.1667663Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T09:27:05.1667777Z               "line": 311
2026-06-15T09:27:05.1667888Z             },
2026-06-15T09:27:05.1667996Z             {
2026-06-15T09:27:05.1668145Z               "path": "crates/spt-live/src/inject.rs",
2026-06-15T09:27:05.1668245Z               "line": 15
2026-06-15T09:27:05.1668354Z             },
2026-06-15T09:27:05.1668455Z             {
2026-06-15T09:27:05.1668597Z               "path": "crates/spt-live/src/inject.rs",
2026-06-15T09:27:05.1668702Z               "line": 32
2026-06-15T09:27:05.1668808Z             },
2026-06-15T09:27:05.1668907Z             {
2026-06-15T09:27:05.1669118Z               "path": "crates/spt-store/src/history.rs",
2026-06-15T09:27:05.1669222Z               "line": 49
2026-06-15T09:27:05.1669317Z             },
2026-06-15T09:27:05.1669428Z             {
2026-06-15T09:27:05.1669570Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:27:05.1669671Z               "line": 286
2026-06-15T09:27:05.1669781Z             },
2026-06-15T09:27:05.1669874Z             {
2026-06-15T09:27:05.1670012Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:27:05.1670248Z               "line": 320
2026-06-15T09:27:05.1670354Z             }
2026-06-15T09:27:05.1670450Z           ]
2026-06-15T09:27:05.1670553Z         },
2026-06-15T09:27:05.1670659Z         "int": {
2026-06-15T09:27:05.1670764Z           "complete": true,
2026-06-15T09:27:05.1670863Z           "evidence": [
2026-06-15T09:27:05.1670969Z             {
2026-06-15T09:27:05.1671149Z               "path": "crates/spt-daemon/tests/two_origin_spanning.rs",
2026-06-15T09:27:05.1671260Z               "line": 19
2026-06-15T09:27:05.1671355Z             }
2026-06-15T09:27:05.1671460Z           ]
2026-06-15T09:27:05.1671559Z         },
2026-06-15T09:27:05.1671779Z         "unit": {
2026-06-15T09:27:05.1671889Z           "complete": true,
2026-06-15T09:27:05.1672004Z           "evidence": [
2026-06-15T09:27:05.1672108Z             {
2026-06-15T09:27:05.1672252Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T09:27:05.1672351Z               "line": 440
2026-06-15T09:27:05.1672451Z             },
2026-06-15T09:27:05.1672557Z             {
2026-06-15T09:27:05.1672689Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T09:27:05.1672798Z               "line": 551
2026-06-15T09:27:05.1672903Z             },
2026-06-15T09:27:05.1673002Z             {
2026-06-15T09:27:05.1673143Z               "path": "crates/spt-live/src/inject.rs",
2026-06-15T09:27:05.1673254Z               "line": 58
2026-06-15T09:27:05.1673354Z             },
2026-06-15T09:27:05.1673463Z             {
2026-06-15T09:27:05.1673593Z               "path": "crates/spt-live/src/inject.rs",
2026-06-15T09:27:05.1673706Z               "line": 77
2026-06-15T09:27:05.1673817Z             },
2026-06-15T09:27:05.1673922Z             {
2026-06-15T09:27:05.1674059Z               "path": "crates/spt-live/src/inject.rs",
2026-06-15T09:27:05.1674160Z               "line": 87
2026-06-15T09:27:05.1674269Z             },
2026-06-15T09:27:05.1674370Z             {
2026-06-15T09:27:05.1674514Z               "path": "crates/spt-store/src/history.rs",
2026-06-15T09:27:05.1674627Z               "line": 94
2026-06-15T09:27:05.1674727Z             },
2026-06-15T09:27:05.1674824Z             {
2026-06-15T09:27:05.1674970Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:27:05.1675086Z               "line": 691
2026-06-15T09:27:05.1675186Z             },
2026-06-15T09:27:05.1675280Z             {
2026-06-15T09:27:05.1675422Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:27:05.1675541Z               "line": 716
2026-06-15T09:27:05.1675640Z             }
2026-06-15T09:27:05.1675754Z           ]
2026-06-15T09:27:05.1675850Z         }
2026-06-15T09:27:05.1675959Z       }
2026-06-15T09:27:05.1676064Z     },
2026-06-15T09:27:05.1676170Z     {
2026-06-15T09:27:05.1676283Z       "id": "REQ-UPD-1",
2026-06-15T09:27:05.1676418Z       "title": "Peer-propagated update over P2P",
2026-06-15T09:27:05.1676541Z       "requiredStages": [
2026-06-15T09:27:05.1676650Z         "impl",
2026-06-15T09:27:05.1676761Z         "unit",
2026-06-15T09:27:05.1676870Z         "int"
2026-06-15T09:27:05.1676969Z       ],
2026-06-15T09:27:05.1677085Z       "stages": {
2026-06-15T09:27:05.1677184Z         "doc": {
2026-06-15T09:27:05.1677303Z           "complete": false,
2026-06-15T09:27:05.1677414Z           "evidence": []
2026-06-15T09:27:05.1677518Z         },
2026-06-15T09:27:05.1677618Z         "impl": {
2026-06-15T09:27:05.1677734Z           "complete": true,
2026-06-15T09:27:05.1677851Z           "evidence": [
2026-06-15T09:27:05.1677948Z             {
2026-06-15T09:27:05.1678114Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T09:27:05.1678227Z               "line": 28
2026-06-15T09:27:05.1678328Z             },
2026-06-15T09:27:05.1678434Z             {
2026-06-15T09:27:05.1678575Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T09:27:05.1678676Z               "line": 103
2026-06-15T09:27:05.1678777Z             },
2026-06-15T09:27:05.1678880Z             {
2026-06-15T09:27:05.1679204Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T09:27:05.1679315Z               "line": 342
2026-06-15T09:27:05.1679434Z             },
2026-06-15T09:27:05.1679539Z             {
2026-06-15T09:27:05.1679692Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:27:05.1679792Z               "line": 22
2026-06-15T09:27:05.1679892Z             },
2026-06-15T09:27:05.1679993Z             {
2026-06-15T09:27:05.1680135Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:27:05.1680246Z               "line": 207
2026-06-15T09:27:05.1680350Z             },
2026-06-15T09:27:05.1680449Z             {
2026-06-15T09:27:05.1680709Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:27:05.1680823Z               "line": 283
2026-06-15T09:27:05.1680914Z             },
2026-06-15T09:27:05.1681015Z             {
2026-06-15T09:27:05.1681161Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:27:05.1681267Z               "line": 340
2026-06-15T09:27:05.1681381Z             },
2026-06-15T09:27:05.1681480Z             {
2026-06-15T09:27:05.1681638Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T09:27:05.1681743Z               "line": 37
2026-06-15T09:27:05.1681839Z             }
2026-06-15T09:27:05.1681948Z           ]
2026-06-15T09:27:05.1682048Z         },
2026-06-15T09:27:05.1682159Z         "int": {
2026-06-15T09:27:05.1682277Z           "complete": true,
2026-06-15T09:27:05.1682382Z           "evidence": [
2026-06-15T09:27:05.1682493Z             {
2026-06-15T09:27:05.1682644Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T09:27:05.1682759Z               "line": 207
2026-06-15T09:27:05.1682860Z             },
2026-06-15T09:27:05.1682963Z             {
2026-06-15T09:27:05.1683103Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:27:05.1683213Z               "line": 988
2026-06-15T09:27:05.1683316Z             }
2026-06-15T09:27:05.1683421Z           ]
2026-06-15T09:27:05.1683525Z         },
2026-06-15T09:27:05.1683628Z         "unit": {
2026-06-15T09:27:05.1683743Z           "complete": true,
2026-06-15T09:27:05.1683853Z           "evidence": [
2026-06-15T09:27:05.1683947Z             {
2026-06-15T09:27:05.1684111Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:27:05.1684220Z               "line": 490
2026-06-15T09:27:05.1684314Z             },
2026-06-15T09:27:05.1684411Z             {
2026-06-15T09:27:05.1684554Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:27:05.1684658Z               "line": 616
2026-06-15T09:27:05.1684769Z             },
2026-06-15T09:27:05.1684883Z             {
2026-06-15T09:27:05.1685031Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-15T09:27:05.1685140Z               "line": 277
2026-06-15T09:27:05.1685230Z             },
2026-06-15T09:27:05.1685331Z             {
2026-06-15T09:27:05.1685469Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T09:27:05.1685583Z               "line": 124
2026-06-15T09:27:05.1685689Z             },
2026-06-15T09:27:05.1685788Z             {
2026-06-15T09:27:05.1685934Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T09:27:05.1686040Z               "line": 200
2026-06-15T09:27:05.1686143Z             }
2026-06-15T09:27:05.1686247Z           ]
2026-06-15T09:27:05.1686348Z         }
2026-06-15T09:27:05.1686453Z       }
2026-06-15T09:27:05.1686557Z     },
2026-06-15T09:27:05.1686658Z     {
2026-06-15T09:27:05.1686772Z       "id": "REQ-UPD-2",
2026-06-15T09:27:05.1686953Z       "title": "All binaries signature-verified before handoff",
2026-06-15T09:27:05.1687082Z       "requiredStages": [
2026-06-15T09:27:05.1687182Z         "impl",
2026-06-15T09:27:05.1687283Z         "unit"
2026-06-15T09:27:05.1687382Z       ],
2026-06-15T09:27:05.1687496Z       "stages": {
2026-06-15T09:27:05.1687602Z         "doc": {
2026-06-15T09:27:05.1687711Z           "complete": false,
2026-06-15T09:27:05.1687932Z           "evidence": []
2026-06-15T09:27:05.1688035Z         },
2026-06-15T09:27:05.1688140Z         "impl": {
2026-06-15T09:27:05.1688242Z           "complete": true,
2026-06-15T09:27:05.1688355Z           "evidence": [
2026-06-15T09:27:05.1688450Z             {
2026-06-15T09:27:05.1688609Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T09:27:05.1688716Z               "line": 343
2026-06-15T09:27:05.1688821Z             },
2026-06-15T09:27:05.1688921Z             {
2026-06-15T09:27:05.1689145Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T09:27:05.1689270Z               "line": 476
2026-06-15T09:27:05.1689479Z             },
2026-06-15T09:27:05.1689580Z             {
2026-06-15T09:27:05.1689722Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:27:05.1689827Z               "line": 29
2026-06-15T09:27:05.1689928Z             },
2026-06-15T09:27:05.1690032Z             {
2026-06-15T09:27:05.1690186Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:27:05.1690304Z               "line": 271
2026-06-15T09:27:05.1690413Z             },
2026-06-15T09:27:05.1690510Z             {
2026-06-15T09:27:05.1690651Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:27:05.1690767Z               "line": 288
2026-06-15T09:27:05.1690868Z             },
2026-06-15T09:27:05.1690976Z             {
2026-06-15T09:27:05.1691118Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:27:05.1691232Z               "line": 408
2026-06-15T09:27:05.1691340Z             },
2026-06-15T09:27:05.1691431Z             {
2026-06-15T09:27:05.1691575Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:27:05.1691688Z               "line": 540
2026-06-15T09:27:05.1691789Z             },
2026-06-15T09:27:05.1691889Z             {
2026-06-15T09:27:05.1692026Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T09:27:05.1692137Z               "line": 155
2026-06-15T09:27:05.1692242Z             }
2026-06-15T09:27:05.1692351Z           ]
2026-06-15T09:27:05.1692452Z         },
2026-06-15T09:27:05.1692552Z         "int": {
2026-06-15T09:27:05.1692661Z           "complete": false,
2026-06-15T09:27:05.1692767Z           "evidence": []
2026-06-15T09:27:05.1692871Z         },
2026-06-15T09:27:05.1692966Z         "unit": {
2026-06-15T09:27:05.1693082Z           "complete": true,
2026-06-15T09:27:05.1693194Z           "evidence": [
2026-06-15T09:27:05.1693295Z             {
2026-06-15T09:27:05.1693439Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:27:05.1693553Z               "line": 697
2026-06-15T09:27:05.1693663Z             },
2026-06-15T09:27:05.1693768Z             {
2026-06-15T09:27:05.1693909Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:27:05.1694010Z               "line": 758
2026-06-15T09:27:05.1694123Z             },
2026-06-15T09:27:05.1694216Z             {
2026-06-15T09:27:05.1694365Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:27:05.1694480Z               "line": 772
2026-06-15T09:27:05.1694584Z             },
2026-06-15T09:27:05.1694690Z             {
2026-06-15T09:27:05.1694822Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:27:05.1694937Z               "line": 788
2026-06-15T09:27:05.1695042Z             },
2026-06-15T09:27:05.1695151Z             {
2026-06-15T09:27:05.1695300Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:27:05.1695399Z               "line": 879
2026-06-15T09:27:05.1695504Z             },
2026-06-15T09:27:05.1695601Z             {
2026-06-15T09:27:05.1695747Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T09:27:05.1695876Z               "line": 414
2026-06-15T09:27:05.1695973Z             },
2026-06-15T09:27:05.1696076Z             {
2026-06-15T09:27:05.1696216Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T09:27:05.1696330Z               "line": 427
2026-06-15T09:27:05.1696562Z             },
2026-06-15T09:27:05.1696661Z             {
2026-06-15T09:27:05.1696826Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-15T09:27:05.1696937Z               "line": 410
2026-06-15T09:27:05.1697041Z             }
2026-06-15T09:27:05.1697141Z           ]
2026-06-15T09:27:05.1697247Z         }
2026-06-15T09:27:05.1697351Z       }
2026-06-15T09:27:05.1697456Z     },
2026-06-15T09:27:05.1697562Z     {
2026-06-15T09:27:05.1697666Z       "id": "REQ-UPD-3",
2026-06-15T09:27:05.1697877Z       "title": "No endpoint process terminates/suspends during self-update",
2026-06-15T09:27:05.1697995Z       "requiredStages": [
2026-06-15T09:27:05.1698095Z         "impl",
2026-06-15T09:27:05.1698276Z         "unit",
2026-06-15T09:27:05.1698381Z         "int"
2026-06-15T09:27:05.1698482Z       ],
2026-06-15T09:27:05.1698586Z       "stages": {
2026-06-15T09:27:05.1698695Z         "doc": {
2026-06-15T09:27:05.1698806Z           "complete": false,
2026-06-15T09:27:05.1698915Z           "evidence": []
2026-06-15T09:27:05.1699102Z         },
2026-06-15T09:27:05.1699206Z         "impl": {
2026-06-15T09:27:05.1699324Z           "complete": true,
2026-06-15T09:27:05.1699429Z           "evidence": [
2026-06-15T09:27:05.1699540Z             {
2026-06-15T09:27:05.1699686Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T09:27:05.1699797Z               "line": 40
2026-06-15T09:27:05.1699897Z             },
2026-06-15T09:27:05.1699996Z             {
2026-06-15T09:27:05.1700145Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T09:27:05.1700249Z               "line": 87
2026-06-15T09:27:05.1700359Z             },
2026-06-15T09:27:05.1700469Z             {
2026-06-15T09:27:05.1700616Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T09:27:05.1700717Z               "line": 993
2026-06-15T09:27:05.1700826Z             },
2026-06-15T09:27:05.1700926Z             {
2026-06-15T09:27:05.1701071Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:27:05.1701188Z               "line": 1085
2026-06-15T09:27:05.1701293Z             },
2026-06-15T09:27:05.1701390Z             {
2026-06-15T09:27:05.1701527Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T09:27:05.1701640Z               "line": 26
2026-06-15T09:27:05.1701745Z             },
2026-06-15T09:27:05.1701839Z             {
2026-06-15T09:27:05.1701981Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T09:27:05.1702087Z               "line": 114
2026-06-15T09:27:05.1702192Z             },
2026-06-15T09:27:05.1702291Z             {
2026-06-15T09:27:05.1702439Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T09:27:05.1702553Z               "line": 246
2026-06-15T09:27:05.1702659Z             },
2026-06-15T09:27:05.1702768Z             {
2026-06-15T09:27:05.1702896Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1703007Z               "line": 2178
2026-06-15T09:27:05.1703112Z             }
2026-06-15T09:27:05.1703221Z           ]
2026-06-15T09:27:05.1703322Z         },
2026-06-15T09:27:05.1703426Z         "int": {
2026-06-15T09:27:05.1703550Z           "complete": true,
2026-06-15T09:27:05.1703656Z           "evidence": [
2026-06-15T09:27:05.1703769Z             {
2026-06-15T09:27:05.1703919Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-15T09:27:05.1704023Z               "line": 58
2026-06-15T09:27:05.1704132Z             }
2026-06-15T09:27:05.1704233Z           ]
2026-06-15T09:27:05.1704342Z         },
2026-06-15T09:27:05.1704441Z         "unit": {
2026-06-15T09:27:05.1704560Z           "complete": true,
2026-06-15T09:27:05.1704664Z           "evidence": [
2026-06-15T09:27:05.1708146Z             {
2026-06-15T09:27:05.1708340Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T09:27:05.1708451Z               "line": 532
2026-06-15T09:27:05.1708555Z             },
2026-06-15T09:27:05.1708655Z             {
2026-06-15T09:27:05.1708817Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T09:27:05.1709156Z               "line": 583
2026-06-15T09:27:05.1709255Z             },
2026-06-15T09:27:05.1709366Z             {
2026-06-15T09:27:05.1709513Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T09:27:05.1709619Z               "line": 651
2026-06-15T09:27:05.1709725Z             },
2026-06-15T09:27:05.1709823Z             {
2026-06-15T09:27:05.1709965Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:27:05.1710076Z               "line": 1062
2026-06-15T09:27:05.1710180Z             },
2026-06-15T09:27:05.1710284Z             {
2026-06-15T09:27:05.1710428Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T09:27:05.1710629Z               "line": 271
2026-06-15T09:27:05.1710733Z             },
2026-06-15T09:27:05.1710828Z             {
2026-06-15T09:27:05.1710977Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T09:27:05.1711095Z               "line": 295
2026-06-15T09:27:05.1711190Z             },
2026-06-15T09:27:05.1711307Z             {
2026-06-15T09:27:05.1711448Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T09:27:05.1711548Z               "line": 316
2026-06-15T09:27:05.1711654Z             },
2026-06-15T09:27:05.1711758Z             {
2026-06-15T09:27:05.1711897Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T09:27:05.1712002Z               "line": 332
2026-06-15T09:27:05.1712101Z             }
2026-06-15T09:27:05.1712200Z           ]
2026-06-15T09:27:05.1712305Z         }
2026-06-15T09:27:05.1712399Z       }
2026-06-15T09:27:05.1712498Z     },
2026-06-15T09:27:05.1712595Z     {
2026-06-15T09:27:05.1712704Z       "id": "REQ-UPD-4",
2026-06-15T09:27:05.1712924Z       "title": "Update gated on user confirmation by default; opt-in full-auto",
2026-06-15T09:27:05.1713047Z       "requiredStages": [
2026-06-15T09:27:05.1713156Z         "impl",
2026-06-15T09:27:05.1713257Z         "unit"
2026-06-15T09:27:05.1713352Z       ],
2026-06-15T09:27:05.1713452Z       "stages": {
2026-06-15T09:27:05.1713558Z         "doc": {
2026-06-15T09:27:05.1713677Z           "complete": false,
2026-06-15T09:27:05.1713781Z           "evidence": []
2026-06-15T09:27:05.1713887Z         },
2026-06-15T09:27:05.1713987Z         "impl": {
2026-06-15T09:27:05.1714110Z           "complete": true,
2026-06-15T09:27:05.1714211Z           "evidence": [
2026-06-15T09:27:05.1714315Z             {
2026-06-15T09:27:05.1714474Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T09:27:05.1714578Z               "line": 41
2026-06-15T09:27:05.1714678Z             },
2026-06-15T09:27:05.1714779Z             {
2026-06-15T09:27:05.1714921Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T09:27:05.1715039Z               "line": 88
2026-06-15T09:27:05.1715140Z             },
2026-06-15T09:27:05.1715233Z             {
2026-06-15T09:27:05.1715384Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-15T09:27:05.1715495Z               "line": 23
2026-06-15T09:27:05.1715600Z             },
2026-06-15T09:27:05.1715704Z             {
2026-06-15T09:27:05.1715853Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-15T09:27:05.1715962Z               "line": 56
2026-06-15T09:27:05.1716067Z             },
2026-06-15T09:27:05.1716172Z             {
2026-06-15T09:27:05.1716319Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-15T09:27:05.1716425Z               "line": 77
2026-06-15T09:27:05.1716529Z             },
2026-06-15T09:27:05.1716629Z             {
2026-06-15T09:27:05.1716778Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:27:05.1716891Z               "line": 186
2026-06-15T09:27:05.1716997Z             },
2026-06-15T09:27:05.1717102Z             {
2026-06-15T09:27:05.1717250Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:27:05.1717356Z               "line": 108
2026-06-15T09:27:05.1717460Z             },
2026-06-15T09:27:05.1717558Z             {
2026-06-15T09:27:05.1717805Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T09:27:05.1717908Z               "line": 180
2026-06-15T09:27:05.1718014Z             },
2026-06-15T09:27:05.1718115Z             {
2026-06-15T09:27:05.1718237Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1718348Z               "line": 2177
2026-06-15T09:27:05.1718448Z             }
2026-06-15T09:27:05.1718552Z           ]
2026-06-15T09:27:05.1718648Z         },
2026-06-15T09:27:05.1718757Z         "int": {
2026-06-15T09:27:05.1718881Z           "complete": false,
2026-06-15T09:27:05.1719077Z           "evidence": []
2026-06-15T09:27:05.1719177Z         },
2026-06-15T09:27:05.1719278Z         "unit": {
2026-06-15T09:27:05.1719563Z           "complete": true,
2026-06-15T09:27:05.1719665Z           "evidence": [
2026-06-15T09:27:05.1719768Z             {
2026-06-15T09:27:05.1719913Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T09:27:05.1720017Z               "line": 579
2026-06-15T09:27:05.1720126Z             },
2026-06-15T09:27:05.1720232Z             {
2026-06-15T09:27:05.1720374Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T09:27:05.1720482Z               "line": 704
2026-06-15T09:27:05.1720588Z             },
2026-06-15T09:27:05.1720698Z             {
2026-06-15T09:27:05.1720840Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T09:27:05.1720946Z               "line": 384
2026-06-15T09:27:05.1721050Z             },
2026-06-15T09:27:05.1721150Z             {
2026-06-15T09:27:05.1721298Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-15T09:27:05.1721393Z               "line": 102
2026-06-15T09:27:05.1721498Z             },
2026-06-15T09:27:05.1721604Z             {
2026-06-15T09:27:05.1721746Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-15T09:27:05.1721852Z               "line": 123
2026-06-15T09:27:05.1721960Z             },
2026-06-15T09:27:05.1722061Z             {
2026-06-15T09:27:05.1722205Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-15T09:27:05.1722323Z               "line": 142
2026-06-15T09:27:05.1722423Z             },
2026-06-15T09:27:05.1722530Z             {
2026-06-15T09:27:05.1722666Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T09:27:05.1722780Z               "line": 413
2026-06-15T09:27:05.1722889Z             },
2026-06-15T09:27:05.1722978Z             {
2026-06-15T09:27:05.1723125Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:27:05.1723236Z               "line": 566
2026-06-15T09:27:05.1723340Z             },
2026-06-15T09:27:05.1723440Z             {
2026-06-15T09:27:05.1723574Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1723697Z               "line": 6650
2026-06-15T09:27:05.1723804Z             }
2026-06-15T09:27:05.1723903Z           ]
2026-06-15T09:27:05.1723998Z         }
2026-06-15T09:27:05.1724104Z       }
2026-06-15T09:27:05.1724204Z     },
2026-06-15T09:27:05.1724303Z     {
2026-06-15T09:27:05.1724428Z       "id": "REQ-UPD-5",
2026-06-15T09:27:05.1724604Z       "title": "spt-core ripple-updates registered adapters",
2026-06-15T09:27:05.1724724Z       "requiredStages": [
2026-06-15T09:27:05.1724818Z         "impl",
2026-06-15T09:27:05.1724919Z         "unit"
2026-06-15T09:27:05.1725024Z       ],
2026-06-15T09:27:05.1725133Z       "stages": {
2026-06-15T09:27:05.1725233Z         "doc": {
2026-06-15T09:27:05.1725344Z           "complete": false,
2026-06-15T09:27:05.1725476Z           "evidence": []
2026-06-15T09:27:05.1725589Z         },
2026-06-15T09:27:05.1725690Z         "impl": {
2026-06-15T09:27:05.1725807Z           "complete": true,
2026-06-15T09:27:05.1725916Z           "evidence": [
2026-06-15T09:27:05.1726031Z             {
2026-06-15T09:27:05.1726193Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T09:27:05.1726307Z               "line": 27
2026-06-15T09:27:05.1726408Z             },
2026-06-15T09:27:05.1726503Z             {
2026-06-15T09:27:05.1726657Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T09:27:05.1726865Z               "line": 82
2026-06-15T09:27:05.1726966Z             },
2026-06-15T09:27:05.1727066Z             {
2026-06-15T09:27:05.1727223Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T09:27:05.1727333Z               "line": 134
2026-06-15T09:27:05.1727433Z             },
2026-06-15T09:27:05.1727533Z             {
2026-06-15T09:27:05.1727696Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:27:05.1727805Z               "line": 492
2026-06-15T09:27:05.1727901Z             },
2026-06-15T09:27:05.1727996Z             {
2026-06-15T09:27:05.1728128Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:27:05.1728314Z               "line": 528
2026-06-15T09:27:05.1728417Z             }
2026-06-15T09:27:05.1728516Z           ]
2026-06-15T09:27:05.1728612Z         },
2026-06-15T09:27:05.1728713Z         "int": {
2026-06-15T09:27:05.1728831Z           "complete": false,
2026-06-15T09:27:05.1728937Z           "evidence": []
2026-06-15T09:27:05.1729131Z         },
2026-06-15T09:27:05.1729232Z         "unit": {
2026-06-15T09:27:05.1729351Z           "complete": true,
2026-06-15T09:27:05.1729470Z           "evidence": [
2026-06-15T09:27:05.1729571Z             {
2026-06-15T09:27:05.1729732Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T09:27:05.1729838Z               "line": 232
2026-06-15T09:27:05.1729948Z             },
2026-06-15T09:27:05.1730047Z             {
2026-06-15T09:27:05.1730201Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T09:27:05.1730304Z               "line": 246
2026-06-15T09:27:05.1730409Z             },
2026-06-15T09:27:05.1730511Z             {
2026-06-15T09:27:05.1730657Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T09:27:05.1730768Z               "line": 260
2026-06-15T09:27:05.1730873Z             },
2026-06-15T09:27:05.1730971Z             {
2026-06-15T09:27:05.1731138Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T09:27:05.1731235Z               "line": 274
2026-06-15T09:27:05.1731333Z             },
2026-06-15T09:27:05.1731434Z             {
2026-06-15T09:27:05.1731592Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T09:27:05.1731705Z               "line": 308
2026-06-15T09:27:05.1731807Z             },
2026-06-15T09:27:05.1731912Z             {
2026-06-15T09:27:05.1732049Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:27:05.1732154Z               "line": 879
2026-06-15T09:27:05.1732250Z             }
2026-06-15T09:27:05.1732354Z           ]
2026-06-15T09:27:05.1732460Z         }
2026-06-15T09:27:05.1732564Z       }
2026-06-15T09:27:05.1732659Z     },
2026-06-15T09:27:05.1732760Z     {
2026-06-15T09:27:05.1732868Z       "id": "REQ-UPD-6",
2026-06-15T09:27:05.1733758Z       "title": "Platform-targeted update sets and debug rollout: signed multi-platform update metadata, recipient platform selection, channel-scoped monotonic counters, debug-channel opt-in via release-key overlay, local staging plus pull-based peer propagation, and maintainer-only convergence tooling (ADR-0016)",
2026-06-15T09:27:05.1733886Z       "requiredStages": [
2026-06-15T09:27:05.1733991Z         "doc",
2026-06-15T09:27:05.1734087Z         "impl",
2026-06-15T09:27:05.1734191Z         "unit",
2026-06-15T09:27:05.1734291Z         "int"
2026-06-15T09:27:05.1734392Z       ],
2026-06-15T09:27:05.1734492Z       "stages": {
2026-06-15T09:27:05.1734606Z         "doc": {
2026-06-15T09:27:05.1734726Z           "complete": true,
2026-06-15T09:27:05.1734825Z           "evidence": [
2026-06-15T09:27:05.1734940Z             {
2026-06-15T09:27:05.1735087Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-15T09:27:05.1735188Z               "line": 3
2026-06-15T09:27:05.1735289Z             },
2026-06-15T09:27:05.1735402Z             {
2026-06-15T09:27:05.1735541Z               "path": "docs/DEBUG-ROLLOUT.md",
2026-06-15T09:27:05.1735759Z               "line": 3
2026-06-15T09:27:05.1735865Z             },
2026-06-15T09:27:05.1735967Z             {
2026-06-15T09:27:05.1736154Z               "path": "docs/adr/0016-platform-targeted-update-sets.md",
2026-06-15T09:27:05.1736264Z               "line": 3
2026-06-15T09:27:05.1736372Z             }
2026-06-15T09:27:05.1736481Z           ]
2026-06-15T09:27:05.1736577Z         },
2026-06-15T09:27:05.1736687Z         "impl": {
2026-06-15T09:27:05.1736796Z           "complete": true,
2026-06-15T09:27:05.1736912Z           "evidence": [
2026-06-15T09:27:05.1737002Z             {
2026-06-15T09:27:05.1737153Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T09:27:05.1737368Z               "line": 76
2026-06-15T09:27:05.1737473Z             },
2026-06-15T09:27:05.1737574Z             {
2026-06-15T09:27:05.1737721Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T09:27:05.1737827Z               "line": 212
2026-06-15T09:27:05.1737936Z             },
2026-06-15T09:27:05.1738045Z             {
2026-06-15T09:27:05.1738195Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T09:27:05.1738298Z               "line": 69
2026-06-15T09:27:05.1738403Z             },
2026-06-15T09:27:05.1738505Z             {
2026-06-15T09:27:05.1738655Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T09:27:05.1738769Z               "line": 133
2026-06-15T09:27:05.1738883Z             },
2026-06-15T09:27:05.1739062Z             {
2026-06-15T09:27:05.1739225Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T09:27:05.1739343Z               "line": 243
2026-06-15T09:27:05.1739439Z             },
2026-06-15T09:27:05.1739554Z             {
2026-06-15T09:27:05.1739706Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T09:27:05.1739821Z               "line": 406
2026-06-15T09:27:05.1739911Z             },
2026-06-15T09:27:05.1740015Z             {
2026-06-15T09:27:05.1740164Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T09:27:05.1740269Z               "line": 534
2026-06-15T09:27:05.1740369Z             },
2026-06-15T09:27:05.1740474Z             {
2026-06-15T09:27:05.1740617Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T09:27:05.1740723Z               "line": 548
2026-06-15T09:27:05.1740817Z             },
2026-06-15T09:27:05.1740922Z             {
2026-06-15T09:27:05.1741062Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T09:27:05.1741174Z               "line": 603
2026-06-15T09:27:05.1741275Z             },
2026-06-15T09:27:05.1741377Z             {
2026-06-15T09:27:05.1741522Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T09:27:05.1741636Z               "line": 634
2026-06-15T09:27:05.1741727Z             },
2026-06-15T09:27:05.1741832Z             {
2026-06-15T09:27:05.1741979Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-15T09:27:05.1742095Z               "line": 137
2026-06-15T09:27:05.1742204Z             },
2026-06-15T09:27:05.1742299Z             {
2026-06-15T09:27:05.1742452Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-15T09:27:05.1742565Z               "line": 184
2026-06-15T09:27:05.1742672Z             },
2026-06-15T09:27:05.1742776Z             {
2026-06-15T09:27:05.1742924Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:27:05.1743025Z               "line": 78
2026-06-15T09:27:05.1743124Z             },
2026-06-15T09:27:05.1743224Z             {
2026-06-15T09:27:05.1743368Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:27:05.1743472Z               "line": 114
2026-06-15T09:27:05.1743587Z             },
2026-06-15T09:27:05.1743697Z             {
2026-06-15T09:27:05.1743834Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:27:05.1743938Z               "line": 185
2026-06-15T09:27:05.1744042Z             },
2026-06-15T09:27:05.1744146Z             {
2026-06-15T09:27:05.1744408Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:27:05.1744513Z               "line": 260
2026-06-15T09:27:05.1744619Z             },
2026-06-15T09:27:05.1744718Z             {
2026-06-15T09:27:05.1744871Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:27:05.1744971Z               "line": 292
2026-06-15T09:27:05.1745071Z             },
2026-06-15T09:27:05.1745176Z             {
2026-06-15T09:27:05.1745309Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:27:05.1745413Z               "line": 323
2026-06-15T09:27:05.1745515Z             },
2026-06-15T09:27:05.1745615Z             {
2026-06-15T09:27:05.1745854Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:27:05.1745972Z               "line": 346
2026-06-15T09:27:05.1746077Z             },
2026-06-15T09:27:05.1746173Z             {
2026-06-15T09:27:05.1746319Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:27:05.1746425Z               "line": 388
2026-06-15T09:27:05.1746536Z             },
2026-06-15T09:27:05.1746639Z             {
2026-06-15T09:27:05.1746787Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:27:05.1746900Z               "line": 398
2026-06-15T09:27:05.1746999Z             },
2026-06-15T09:27:05.1747099Z             {
2026-06-15T09:27:05.1747243Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:27:05.1747356Z               "line": 410
2026-06-15T09:27:05.1747457Z             },
2026-06-15T09:27:05.1747567Z             {
2026-06-15T09:27:05.1747723Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:27:05.1747824Z               "line": 420
2026-06-15T09:27:05.1747938Z             },
2026-06-15T09:27:05.1748033Z             {
2026-06-15T09:27:05.1748186Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:27:05.1748281Z               "line": 439
2026-06-15T09:27:05.1748392Z             },
2026-06-15T09:27:05.1748491Z             {
2026-06-15T09:27:05.1748644Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:27:05.1748759Z               "line": 449
2026-06-15T09:27:05.1748862Z             },
2026-06-15T09:27:05.1749089Z             {
2026-06-15T09:27:05.1749234Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:27:05.1749339Z               "line": 94
2026-06-15T09:27:05.1749443Z             },
2026-06-15T09:27:05.1749546Z             {
2026-06-15T09:27:05.1749694Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:27:05.1749800Z               "line": 120
2026-06-15T09:27:05.1749904Z             },
2026-06-15T09:27:05.1750014Z             {
2026-06-15T09:27:05.1750166Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:27:05.1750280Z               "line": 135
2026-06-15T09:27:05.1750381Z             },
2026-06-15T09:27:05.1750486Z             {
2026-06-15T09:27:05.1750629Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:27:05.1750748Z               "line": 162
2026-06-15T09:27:05.1750857Z             },
2026-06-15T09:27:05.1750953Z             {
2026-06-15T09:27:05.1751086Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:27:05.1751191Z               "line": 174
2026-06-15T09:27:05.1751293Z             },
2026-06-15T09:27:05.1751396Z             {
2026-06-15T09:27:05.1751539Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:27:05.1751650Z               "line": 185
2026-06-15T09:27:05.1751749Z             },
2026-06-15T09:27:05.1751849Z             {
2026-06-15T09:27:05.1751993Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:27:05.1752106Z               "line": 451
2026-06-15T09:27:05.1752206Z             },
2026-06-15T09:27:05.1752312Z             {
2026-06-15T09:27:05.1752458Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:27:05.1752564Z               "line": 555
2026-06-15T09:27:05.1752669Z             },
2026-06-15T09:27:05.1752769Z             {
2026-06-15T09:27:05.1753027Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T09:27:05.1753130Z               "line": 171
2026-06-15T09:27:05.1753237Z             },
2026-06-15T09:27:05.1753345Z             {
2026-06-15T09:27:05.1753484Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T09:27:05.1753589Z               "line": 65
2026-06-15T09:27:05.1753694Z             },
2026-06-15T09:27:05.1753799Z             {
2026-06-15T09:27:05.1753942Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T09:27:05.1754047Z               "line": 71
2026-06-15T09:27:05.1754152Z             },
2026-06-15T09:27:05.1754257Z             {
2026-06-15T09:27:05.1754499Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T09:27:05.1754598Z               "line": 77
2026-06-15T09:27:05.1754696Z             },
2026-06-15T09:27:05.1754802Z             {
2026-06-15T09:27:05.1754931Z               "path": "crates/xtask/src/main.rs",
2026-06-15T09:27:05.1755054Z               "line": 778
2026-06-15T09:27:05.1755154Z             },
2026-06-15T09:27:05.1755255Z             {
2026-06-15T09:27:05.1755392Z               "path": "crates/xtask/src/main.rs",
2026-06-15T09:27:05.1755518Z               "line": 795
2026-06-15T09:27:05.1755621Z             },
2026-06-15T09:27:05.1755722Z             {
2026-06-15T09:27:05.1755865Z               "path": "crates/xtask/src/main.rs",
2026-06-15T09:27:05.1755965Z               "line": 838
2026-06-15T09:27:05.1756075Z             },
2026-06-15T09:27:05.1756175Z             {
2026-06-15T09:27:05.1756312Z               "path": "crates/xtask/src/main.rs",
2026-06-15T09:27:05.1756423Z               "line": 981
2026-06-15T09:27:05.1756532Z             },
2026-06-15T09:27:05.1756641Z             {
2026-06-15T09:27:05.1756767Z               "path": "crates/xtask/src/main.rs",
2026-06-15T09:27:05.1756884Z               "line": 1131
2026-06-15T09:27:05.1756991Z             }
2026-06-15T09:27:05.1757091Z           ]
2026-06-15T09:27:05.1757199Z         },
2026-06-15T09:27:05.1757299Z         "int": {
2026-06-15T09:27:05.1757418Z           "complete": true,
2026-06-15T09:27:05.1757526Z           "evidence": [
2026-06-15T09:27:05.1757630Z             {
2026-06-15T09:27:05.1757788Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-15T09:27:05.1757906Z               "line": 569
2026-06-15T09:27:05.1758003Z             },
2026-06-15T09:27:05.1758107Z             {
2026-06-15T09:27:05.1758255Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-15T09:27:05.1758356Z               "line": 135
2026-06-15T09:27:05.1758456Z             }
2026-06-15T09:27:05.1758560Z           ]
2026-06-15T09:27:05.1758675Z         },
2026-06-15T09:27:05.1758779Z         "unit": {
2026-06-15T09:27:05.1758889Z           "complete": true,
2026-06-15T09:27:05.1759209Z           "evidence": [
2026-06-15T09:27:05.1759310Z             {
2026-06-15T09:27:05.1759476Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T09:27:05.1759591Z               "line": 624
2026-06-15T09:27:05.1759696Z             },
2026-06-15T09:27:05.1759799Z             {
2026-06-15T09:27:05.1759951Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T09:27:05.1760055Z               "line": 673
2026-06-15T09:27:05.1760159Z             },
2026-06-15T09:27:05.1760254Z             {
2026-06-15T09:27:05.1760402Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T09:27:05.1760516Z               "line": 696
2026-06-15T09:27:05.1760617Z             },
2026-06-15T09:27:05.1760722Z             {
2026-06-15T09:27:05.1760865Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:27:05.1760984Z               "line": 513
2026-06-15T09:27:05.1761083Z             },
2026-06-15T09:27:05.1761180Z             {
2026-06-15T09:27:05.1761317Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:27:05.1761432Z               "line": 638
2026-06-15T09:27:05.1761533Z             },
2026-06-15T09:27:05.1761742Z             {
2026-06-15T09:27:05.1761891Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:27:05.1762004Z               "line": 675
2026-06-15T09:27:05.1762100Z             },
2026-06-15T09:27:05.1762211Z             {
2026-06-15T09:27:05.1762352Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:27:05.1762459Z               "line": 894
2026-06-15T09:27:05.1762567Z             },
2026-06-15T09:27:05.1762666Z             {
2026-06-15T09:27:05.1762814Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:27:05.1762920Z               "line": 916
2026-06-15T09:27:05.1763028Z             },
2026-06-15T09:27:05.1763253Z             {
2026-06-15T09:27:05.1763395Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:27:05.1763515Z               "line": 933
2026-06-15T09:27:05.1763615Z             },
2026-06-15T09:27:05.1763725Z             {
2026-06-15T09:27:05.1763868Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:27:05.1763987Z               "line": 948
2026-06-15T09:27:05.1764088Z             },
2026-06-15T09:27:05.1764192Z             {
2026-06-15T09:27:05.1764334Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:27:05.1764446Z               "line": 974
2026-06-15T09:27:05.1764549Z             },
2026-06-15T09:27:05.1764654Z             {
2026-06-15T09:27:05.1764798Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T09:27:05.1764911Z               "line": 457
2026-06-15T09:27:05.1765015Z             },
2026-06-15T09:27:05.1765111Z             {
2026-06-15T09:27:05.1765261Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-15T09:27:05.1765386Z               "line": 338
2026-06-15T09:27:05.1765491Z             },
2026-06-15T09:27:05.1765594Z             {
2026-06-15T09:27:05.1765729Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1765834Z               "line": 8792
2026-06-15T09:27:05.1765938Z             },
2026-06-15T09:27:05.1766044Z             {
2026-06-15T09:27:05.1766181Z               "path": "crates/xtask/src/main.rs",
2026-06-15T09:27:05.1766287Z               "line": 1260
2026-06-15T09:27:05.1766387Z             },
2026-06-15T09:27:05.1766492Z             {
2026-06-15T09:27:05.1766640Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-15T09:27:05.1766759Z               "line": 130
2026-06-15T09:27:05.1766863Z             }
2026-06-15T09:27:05.1766975Z           ]
2026-06-15T09:27:05.1767078Z         }
2026-06-15T09:27:05.1767178Z       }
2026-06-15T09:27:05.1767275Z     },
2026-06-15T09:27:05.1767370Z     {
2026-06-15T09:27:05.1767489Z       "id": "REQ-UPD-7",
2026-06-15T09:27:05.1769846Z       "title": "Origin-source update bootstrap (`spt update fetch`): pull the latest signed release directly from the GitHub release origin (`SaberMage/spt-releases`) — the per-platform artifact + its `<asset>.release.json` SignedRelease metadata — and stage it through the EXISTING verify→stage pipeline (the same `plan_verified` gate: two-key signature + channel + monotonic rollback floor + SHA-256), after which the normal consent-notif / `spt update apply` flow is unchanged. Closes the peer-only-discovery gap (REQ-UPD-1): a first-in-fleet / isolated node can update with no peer to pull from. The signed-release anchor keeps the GitHub transport untrusted-but-verified.",
2026-06-15T09:27:05.1769988Z       "requiredStages": [
2026-06-15T09:27:05.1770093Z         "impl",
2026-06-15T09:27:05.1770190Z         "unit"
2026-06-15T09:27:05.1770298Z       ],
2026-06-15T09:27:05.1770402Z       "stages": {
2026-06-15T09:27:05.1770502Z         "doc": {
2026-06-15T09:27:05.1770624Z           "complete": false,
2026-06-15T09:27:05.1770747Z           "evidence": []
2026-06-15T09:27:05.1770848Z         },
2026-06-15T09:27:05.1770958Z         "impl": {
2026-06-15T09:27:05.1771076Z           "complete": true,
2026-06-15T09:27:05.1771183Z           "evidence": [
2026-06-15T09:27:05.1771287Z             {
2026-06-15T09:27:05.1771420Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1771634Z               "line": 2282
2026-06-15T09:27:05.1771740Z             }
2026-06-15T09:27:05.1771840Z           ]
2026-06-15T09:27:05.1771940Z         },
2026-06-15T09:27:05.1772044Z         "int": {
2026-06-15T09:27:05.1772164Z           "complete": false,
2026-06-15T09:27:05.1772264Z           "evidence": []
2026-06-15T09:27:05.1772369Z         },
2026-06-15T09:27:05.1772475Z         "unit": {
2026-06-15T09:27:05.1772588Z           "complete": true,
2026-06-15T09:27:05.1772704Z           "evidence": [
2026-06-15T09:27:05.1772808Z             {
2026-06-15T09:27:05.1772931Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1773151Z               "line": 8768
2026-06-15T09:27:05.1773255Z             }
2026-06-15T09:27:05.1773360Z           ]
2026-06-15T09:27:05.1773461Z         }
2026-06-15T09:27:05.1773564Z       }
2026-06-15T09:27:05.1773670Z     },
2026-06-15T09:27:05.1773775Z     {
2026-06-15T09:27:05.1773893Z       "id": "REQ-UPD-8",
2026-06-15T09:27:05.1776522Z       "title": "Platform-safe `spt update fetch` + apply platform-guard (v0.3.1 cross-OS brick fix): `spt update fetch` stages the signed multi-platform `SignedUpdateSet` (`update-set.json` + every platform artifact it names), never a platform-blind single `SignedRelease`, so local apply selects `current_platform()` and P2P re-serve lets each peer select ITS own platform. Defense-in-depth: `apply_staged` REFUSES a staged single-release artifact unless it is platform-stamped for THIS node (an unstamped pre-v0.3.2 single, or a single stamped for another OS, fail-safe refuses — the guard that alone prevents the v0.3.1 brick where a Linux ELF was applied as `spt.exe`). UX: a friendly post-apply message (`Updated spt-core to vX.Y.Z.` + changelog URL) driven by an additive `product_version` metadata field, with a release-counter fallback when absent.",
2026-06-15T09:27:05.1776666Z       "requiredStages": [
2026-06-15T09:27:05.1776775Z         "impl",
2026-06-15T09:27:05.1776876Z         "unit"
2026-06-15T09:27:05.1776990Z       ],
2026-06-15T09:27:05.1777099Z       "stages": {
2026-06-15T09:27:05.1777210Z         "doc": {
2026-06-15T09:27:05.1777324Z           "complete": false,
2026-06-15T09:27:05.1777429Z           "evidence": []
2026-06-15T09:27:05.1777535Z         },
2026-06-15T09:27:05.1777643Z         "impl": {
2026-06-15T09:27:05.1777762Z           "complete": true,
2026-06-15T09:27:05.1777869Z           "evidence": [
2026-06-15T09:27:05.1777976Z             {
2026-06-15T09:27:05.1778140Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T09:27:05.1778245Z               "line": 77
2026-06-15T09:27:05.1778348Z             },
2026-06-15T09:27:05.1778452Z             {
2026-06-15T09:27:05.1778599Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:27:05.1778712Z               "line": 49
2026-06-15T09:27:05.1778818Z             },
2026-06-15T09:27:05.1778923Z             {
2026-06-15T09:27:05.1779161Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:27:05.1779280Z               "line": 152
2026-06-15T09:27:05.1779384Z             },
2026-06-15T09:27:05.1779486Z             {
2026-06-15T09:27:05.1779637Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:27:05.1779738Z               "line": 215
2026-06-15T09:27:05.1779843Z             },
2026-06-15T09:27:05.1779943Z             {
2026-06-15T09:27:05.1780087Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:27:05.1780191Z               "line": 230
2026-06-15T09:27:05.1780300Z             },
2026-06-15T09:27:05.1780402Z             {
2026-06-15T09:27:05.1780548Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:27:05.1780668Z               "line": 247
2026-06-15T09:27:05.1780774Z             },
2026-06-15T09:27:05.1780872Z             {
2026-06-15T09:27:05.1781014Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:27:05.1781133Z               "line": 269
2026-06-15T09:27:05.1781231Z             },
2026-06-15T09:27:05.1781442Z             {
2026-06-15T09:27:05.1781598Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:27:05.1781714Z               "line": 66
2026-06-15T09:27:05.1781819Z             },
2026-06-15T09:27:05.1781922Z             {
2026-06-15T09:27:05.1782071Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:27:05.1782185Z               "line": 154
2026-06-15T09:27:05.1782290Z             },
2026-06-15T09:27:05.1782396Z             {
2026-06-15T09:27:05.1782519Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1782644Z               "line": 2156
2026-06-15T09:27:05.1782748Z             },
2026-06-15T09:27:05.1782949Z             {
2026-06-15T09:27:05.1783086Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1783191Z               "line": 2229
2026-06-15T09:27:05.1783297Z             },
2026-06-15T09:27:05.1783401Z             {
2026-06-15T09:27:05.1783525Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1783636Z               "line": 2239
2026-06-15T09:27:05.1783744Z             },
2026-06-15T09:27:05.1783848Z             {
2026-06-15T09:27:05.1783968Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1784078Z               "line": 2246
2026-06-15T09:27:05.1784182Z             },
2026-06-15T09:27:05.1784288Z             {
2026-06-15T09:27:05.1784406Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1784515Z               "line": 2283
2026-06-15T09:27:05.1784622Z             },
2026-06-15T09:27:05.1784721Z             {
2026-06-15T09:27:05.1784859Z               "path": "crates/xtask/src/main.rs",
2026-06-15T09:27:05.1784983Z               "line": 480
2026-06-15T09:27:05.1785083Z             },
2026-06-15T09:27:05.1785189Z             {
2026-06-15T09:27:05.1785331Z               "path": "crates/xtask/src/main.rs",
2026-06-15T09:27:05.1785450Z               "line": 494
2026-06-15T09:27:05.1785537Z             }
2026-06-15T09:27:05.1785641Z           ]
2026-06-15T09:27:05.1785746Z         },
2026-06-15T09:27:05.1785847Z         "int": {
2026-06-15T09:27:05.1785974Z           "complete": false,
2026-06-15T09:27:05.1786088Z           "evidence": []
2026-06-15T09:27:05.1786198Z         },
2026-06-15T09:27:05.1786301Z         "unit": {
2026-06-15T09:27:05.1786419Z           "complete": true,
2026-06-15T09:27:05.1786525Z           "evidence": [
2026-06-15T09:27:05.1786621Z             {
2026-06-15T09:27:05.1786768Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T09:27:05.1786873Z               "line": 476
2026-06-15T09:27:05.1786982Z             },
2026-06-15T09:27:05.1787087Z             {
2026-06-15T09:27:05.1787240Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:27:05.1787354Z               "line": 580
2026-06-15T09:27:05.1787456Z             },
2026-06-15T09:27:05.1787569Z             {
2026-06-15T09:27:05.1787693Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1787813Z               "line": 8770
2026-06-15T09:27:05.1787917Z             },
2026-06-15T09:27:05.1788022Z             {
2026-06-15T09:27:05.1788147Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1788265Z               "line": 8792
2026-06-15T09:27:05.1788366Z             }
2026-06-15T09:27:05.1788466Z           ]
2026-06-15T09:27:05.1788575Z         }
2026-06-15T09:27:05.1788676Z       }
2026-06-15T09:27:05.1788781Z     },
2026-06-15T09:27:05.1788870Z     {
2026-06-15T09:27:05.1789061Z       "id": "REQ-WHOAMI-1",
2026-06-15T09:27:05.1790817Z       "title": "`spt whoami` is a thin ALIAS for `spt endpoint list` (full output: the SELF pin + the subnet roster) — the standalone bare-id command is dropped (the `id=$(spt whoami)` capture was never a real pattern: env vars don't persist between agent tool calls). The one new render: the `endpoint list` SELF pin carries the Self endpoint's authored `endpoint description` (info::read_info(...).resources) when present, inline after the liveness state. whoami stays a top-level hot-path verb (parse unchanged, REQ-MSG-9).",
2026-06-15T09:27:05.1791057Z       "requiredStages": [
2026-06-15T09:27:05.1791161Z         "doc",
2026-06-15T09:27:05.1791257Z         "impl",
2026-06-15T09:27:05.1791367Z         "unit"
2026-06-15T09:27:05.1791465Z       ],
2026-06-15T09:27:05.1791569Z       "stages": {
2026-06-15T09:27:05.1791675Z         "doc": {
2026-06-15T09:27:05.1791787Z           "complete": true,
2026-06-15T09:27:05.1795124Z           "evidence": [
2026-06-15T09:27:05.1795263Z             {
2026-06-15T09:27:05.1795391Z               "path": "CONTEXT.md",
2026-06-15T09:27:05.1795511Z               "line": 649
2026-06-15T09:27:05.1795611Z             }
2026-06-15T09:27:05.1795863Z           ]
2026-06-15T09:27:05.1795972Z         },
2026-06-15T09:27:05.1796083Z         "impl": {
2026-06-15T09:27:05.1796201Z           "complete": true,
2026-06-15T09:27:05.1796315Z           "evidence": [
2026-06-15T09:27:05.1796422Z             {
2026-06-15T09:27:05.1796553Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1796667Z               "line": 2766
2026-06-15T09:27:05.1796758Z             },
2026-06-15T09:27:05.1796866Z             {
2026-06-15T09:27:05.1797008Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1797114Z               "line": 2778
2026-06-15T09:27:05.1797213Z             }
2026-06-15T09:27:05.1797318Z           ]
2026-06-15T09:27:05.1797419Z         },
2026-06-15T09:27:05.1797528Z         "int": {
2026-06-15T09:27:05.1797647Z           "complete": false,
2026-06-15T09:27:05.1797753Z           "evidence": []
2026-06-15T09:27:05.1797848Z         },
2026-06-15T09:27:05.1797943Z         "unit": {
2026-06-15T09:27:05.1798054Z           "complete": true,
2026-06-15T09:27:05.1798177Z           "evidence": [
2026-06-15T09:27:05.1798281Z             {
2026-06-15T09:27:05.1798401Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1798520Z               "line": 6347
2026-06-15T09:27:05.1798621Z             },
2026-06-15T09:27:05.1798726Z             {
2026-06-15T09:27:05.1798854Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:27:05.1799036Z               "line": 6363
2026-06-15T09:27:05.1799130Z             }
2026-06-15T09:27:05.1799246Z           ]
2026-06-15T09:27:05.1799342Z         }
2026-06-15T09:27:05.1799445Z       }
2026-06-15T09:27:05.1799548Z     }
2026-06-15T09:27:05.1799649Z   ],
2026-06-15T09:27:05.1799752Z   "findings": []
2026-06-15T09:27:05.1799856Z }
